使用javascript删除除字母数字和空格以外的所有字符

使用javascript删除除字母数字和空格以外的所有字符,javascript,regex,Javascript,Regex,我喜欢“”提供的解决方案,但在保留空间的同时,我如何做到这一点 我需要在清理完字符串后根据空格对其进行标记 input.replace(/[^\w\s]/gi, '') 不知羞耻地从另一个答案中偷走了^在character类中表示“not”。因此这是“not”\w(相当于\w)和not\s,即空格字符(空格、制表符等)。如果需要,您可以直接使用文本。我知道这是一个旧线程,但它非常流行,出现在Google搜索的顶部。因此,作为替代方案,3limin4t0r接受的答案和评论启发我: .replac

我喜欢“”提供的解决方案,但在保留空间的同时,我如何做到这一点

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

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

不知羞耻地从另一个答案中偷走了
^
在character类中表示“not”。因此这是“not”
\w
(相当于
\w
)和not
\s
,即空格字符(空格、制表符等)。如果需要,您可以直接使用文本

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

.replace(/\W+/g, " ")
伊姆霍

const input=document.querySelector(“输入”);
const button=document.querySelector(“按钮”);
常量输出=document.querySelector(“输出”);
按钮。addEventListener(“单击”,()=>{
output.textContent=input.value.replace(/\W+/g,“”);
})

代替


除特殊字符(如斜引号“)外,其他字符均有效“。你是什么意思?你想包括这些字符还是排除它们?不完全。普通的ascii引号可以工作,但当从PDF复制粘贴文本时,角引号不会被删除,而常规引号可以。我真的不知道该说什么。。我无法重现这个问题。
[^\w]
=
\w
[^\s]
=
\S
因此正则表达式可以减少为
/[\W\S]/g
,不需要忽略大小写修饰符,因为
\W
考虑了这些因素。