一旦标签的通用正则表达式

时间:2015-10-26 04:32:21

标签: javascript regex

我有这些字符串:

"#ab#ab #ab # ab #  a  #a   "

"ab ab ab  ab   a  a   "

所以我想从字符串中得到这个:

"ab ab ab ab a a"

(没有前导和最后一个空格)

但是

现在我使用两个正则表达式:

replace(/#/gi, ' ') replace(/ (?!\w)/gi, '')

我的正则表达并不完美。我想用一个漂亮的正则表达式。

你能帮助我吗?

1 个答案:

答案 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);

Regex Demo and Explanation

/\s*(?:#|\s)\s*/g
  1. \s*:匹配任意数量的空格
  2. (?:...):非捕获组
  3. #|\s:匹配#字面空格字符
  4. var str = '#ab#ab #ab # ab #  a  #a';
    str = str.replace(/\s*(?:#|\s)\s*/g, ' ').trim();
    
    console.log(str);
    document.write(str);