23

我喜欢“从字符串中删除非字母数字字符。遇到 [\] 字符问题”所提供的解决方案,但是我将如何在保留空格的同时做到这一点?

我需要在清理字符串后根据空格对字符串进行标记。

4

2 回答 2

59
input.replace(/[^\w\s]/gi, '')

无耻地从另一个答案中窃取。 ^在字符类中的意思是“不是”。所以这是“not” \w(相当于\W)而不是 not \s,它是空格字符(空格、制表符等)。如果需要,您可以只使用文字。

于 2013-02-01T05:47:49.023 回答
3

我知道这是一个旧线程,但如此受欢迎,出现在 Google 搜索的顶部。因此,作为替代方案,3limin4t0r 接受的答案和评论启发了我:

.replace(/\W+/g, " ")

恕我直言

const input = document.querySelector("input");
const button = document.querySelector("button");
const output = document.querySelector("output");

button.addEventListener("click", () => {
    output.textContent = input.value.replace(/\W+/g, " ");
})
<input>
<button>Replace</button>
<p>
  <output></output>
</p>

于 2019-11-21T12:06:54.243 回答