Friday, May 17, 2024
 Popular · Latest · Hot · Upcoming
162
rated 0 times [  165] [ 3]  / answers: 1 / hits: 23698  / 10 Years ago, wed, june 18, 2014, 12:00:00

I have a few strings like so:



str1 = 00001011100000;  // 10111
str2 = 00011101000000; // 11101
...


I would like to strip the leading AND closing zeros from every string using regex with ONE operation.



So far I used two different functions but I would like to combine them together:



str.replace(/^0+/,'').replace(/0+$/,'');

More From » jquery

 Answers
9

You can just combine both of your regex using an OR clause (|):



var r = '00001011100000'.replace(/^0+|0+$/g, );
//=> 10111





update: Above regex solutions replaces 0 with an empty string. To prevent this problem use this regex:



var repl = str.replace(/^0+(d)|(d)0+$/gm, '$1$2');


RegEx Demo



RegEx Breakup:




  • ^: Assert start

  • 0+: Match one or more zeroes

  • (d): Followed by a digit that is captured in capture group #1

  • |: OR

  • (d): Match a digit that is captured in capture group #2

  • 0+: Followed by one or more zeroes

  • $: Assert end



Replacement:



Here we are using two back-references of the tow capturing groups:



$1$2


That basically puts digit after leading zeroes and digit before trailing zeroes back in the replacement.


[#70518] Monday, June 16, 2014, 10 Years  [reply] [flag answer]
Only authorized users can answer the question. Please sign in first, or register a free account.
andrewb

Total Points: 259
Total Questions: 124
Total Answers: 90

Location: Ivory Coast
Member since Sun, Mar 7, 2021
3 Years ago
;