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.
与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…