假设我有一个字符串
",,,a,,,,,b,,c,,,,d,,,,"
Run Code Online (Sandbox Code Playgroud)
我想把它转换成
"a,b,c,d"
Run Code Online (Sandbox Code Playgroud)
在1次RegExp
操作中.
我可以在2个RegExp
操作中完成它
var str = ",,,a,,,b,,,,c,,,,,,,,d,,,,,,";
str = str.replace(/,+,/g,",").replace(/^,*|,*$/g, '');
Run Code Online (Sandbox Code Playgroud)
是否可以在1次RegExp
操作中执行此操作?
Nin*_*olz 13
您可以使用正则表达式,它们在开头或后跟逗号或在和,并用空字符串替换它.
/^,*|,(?=,|$)/g
第一选择
^,*
^
断言字符串开头的位置
,*
,
字面匹配字符(区分大小写)
*
量词 - 在零和无限次之间匹配,尽可能多次,根据需要回馈(贪婪)第二种选择
,+(?=,|$)
,+
,
字面匹配字符(区分大小写)
+
量词 - 在一次和无限次之间匹配,尽可能多次,根据需要回馈(贪婪)积极前瞻
(?=,|$)
断言下面的正则表达式匹配
第一选择
,
,
匹配字符,字面意思(区分大小写)第二种选择
$
$
断言字符串末尾的位置全局模式标志
g modifier
:g lobal.所有比赛(首场比赛后不返回)
var string = ",,,a,,,,,b,,c,,,,d,,,,";
console.log(string.replace(/^,*|,+(?=,|$)/g, ''));
Run Code Online (Sandbox Code Playgroud)