我有这些字符串:
"#ab#ab #ab # ab # a #a "
和
"ab ab ab ab a a "
所以我想从字符串中得到这个:
"ab ab ab ab a a"
(没有前导和最后一个空格)
但是
现在我使用两个正则表达式:
replace(/#/gi, ' ')
和 replace(/ (?!\w)/gi, '')
我的正则表达并不完美。我想用一个漂亮的正则表达式。
你能帮助我吗?
答案 0 :(得分:3)
使用以下正则表达式(感谢@Avinash Raj)
[\s#]+
还可以在替换字符串上使用trim
来删除前导和尾随空格(如果有)。
演示:
var str = '#ab#ab #ab # ab # a #a';
str = str.replace(/[\s#]+/g, ' ').trim();
console.log(str);
document.write(str);
/\s*(?:#|\s)\s*/g
\s*
:匹配任意数量的空格(?:...)
:非捕获组#|\s
:匹配#
字面或空格字符
var str = '#ab#ab #ab # ab # a #a';
str = str.replace(/\s*(?:#|\s)\s*/g, ' ').trim();
console.log(str);
document.write(str);