【问题标题】:Regex to replace 'NO-BREAK SPACE'正则表达式替换 'NO-BREAK SPACE'
【发布时间】:2015-10-25 17:54:12
【问题描述】:

我正在寻找一个正则表达式来替换字符串中的“NO-BREAK SPACE”。

关于“NO-BREAK SPACE”有一些关于 SO 的问题,但似乎没有人能指出正确的答案。

到目前为止,我尝试使用(字符串“AB”的第二个字符是一个没有换行符的空格)但没有成功:

"A B".replace(new RegExp(String.fromCharCode(160),"g"),"xxx");
"A B".replace($('<b>&nbsp;</b>').text(), 'xxx');
"A B".replace(/\xA0/,'xxx');
"A B".replace(/\\xA0/,'xxx');
"A B".replace(/\u00A0/,'xxx');
"A B".replace(/\\u00A0/,'xxx');

更新:愚蠢的我。事实是我用错误的字符测试了很长一段时间。

【问题讨论】:

  • 如果你想替换所有空白字符(包括新行),你可能想使用\s。如果您只想替换水平空格,您可能需要使用[ \t\xA0\u1680\u180e\u2000-\u200a\u202f\u205f\u3000]

标签: javascript regex string


【解决方案1】:

字符串中的实际字符是NARROW NO-BREAK SPACE (U+202F),而不是通常的\xA0

类似

.replace(/[\u202F\u00A0]/, "...")

应该适合你。

【讨论】:

  • 愚蠢的我。事实是我用错误的字符测试了很长一段时间。谢谢提示
  • 你的帖子真的很有帮助!谢谢,乔治!
【解决方案2】:

我不知道@georg 在他的回答中解释的事实。

但如果你只是复制AB 之间的字符并将其粘贴到.replace() 函数中,它就可以工作。

这里是fiddle

还有sn-p。

alert("A B".replace(' ', 'xxx'));

【讨论】:

    【解决方案3】:

    除了空格、NO-BREAK SPACE 等空格之外,字符串中也存在其他空格 char。

    我们可能需要从字符串中替换,http://jkorpela.fi/chars/spaces.html 这里已经给出了空间的完整 Unicode 列表。

    .replace(/[\u202F\u00A0\u2000\u2001\u2003]/, "...") 
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-01-24
      • 2015-01-24
      • 1970-01-01
      • 1970-01-01
      • 2016-10-20
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多