JavaScript使用正则表达式替换所有多行空格和其他空格字符

JavaScript使用正则表达式替换所有多行空格和其他空格字符,javascript,regex,Javascript,Regex,我有一个文本区域,每当文本区域模糊时,我使用jQuery用一个空格删除所有选项卡、换行符、多空格等 但是,当我使用以下命令时: str.replace(/\s/g, ' ') …它删除所有制表符和换行符,但不删除多个空格 当我尝试时: str.replace(/[ \s], ' ') str.replace(/[(?= +)\s], ' ') …同样的事情也会发生 当我尝试时: str.replace(/[ \s], ' ') str.replace(/[(?= +)\s], ' ')

我有一个文本区域,每当文本区域模糊时,我使用jQuery用一个空格删除所有选项卡、换行符、多空格等

但是,当我使用以下命令时:

str.replace(/\s/g, ' ')
…它删除所有制表符和换行符,但不删除多个空格

当我尝试时:

str.replace(/[ \s], ' ')
str.replace(/[(?= +)\s], ' ')
…同样的事情也会发生

当我尝试时:

str.replace(/[ \s], ' ')
str.replace(/[(?= +)\s], ' ')
…它逃不过我的括号,等等

有人知道我要做的事的正确语法吗

谢谢

str.replace(/\s+/g, ' ');


< P>你可以考虑看。这涵盖了您想要了解的关于JavaScript正则表达式的几乎所有内容

对于问题的第一部分,您需要的常规表达式是
/\s+/
,其中
+
运算符将匹配表达式中的一条或多条上一条语句(空格字符)

关于第二部分:

str.replace(/[(?= +)\s], ' ')

这会产生语法错误。你是说
/[(?=+)\s]/
对于问题的第一部分,您需要的常规表达式是
/\s+/
,其中
+
运算符将匹配表达式中的一条或多条上一条语句(空格字符)

关于第二部分:

str.replace(/[(?= +)\s], ' ')

这会产生语法错误。你是说
/[(?=+)\s]/

谢谢,我希望有一个通用的解决方案,我可以在任何地方使用。例如,如果我只想要换行符、一些随机的其他字符和多个空格,而不是所有的空格,会怎么样?基本上,我希望有什么东西可以让我使用[]s@糖精,我不清楚你的要求。通过向字符类中添加您想要的字符,并添加
+
运算符,可以概括该解决方案。例如,多个r和空格将是
[r\s]+
。您也可以用自己的匹配项替换字符:
str.replace(/([r\s])+/,“$1”)
谢谢,非常感谢。我对regex的想法是错误的。谢谢,我希望有一个通用的解决方案,我可以在任何地方使用。例如,如果我只想要换行符、一些随机的其他字符和多个空格,而不是所有的空格,会怎么样?基本上,我希望有什么东西可以让我使用[]s@糖精,我不清楚你的要求。通过向字符类中添加您想要的字符,并添加
+
运算符,可以概括该解决方案。例如,多个r和空格将是
[r\s]+
。您也可以用自己的匹配项替换字符:
str.replace(/([r\s])+/,“$1”)
谢谢,非常感谢。我对正则表达式的想法是错误的。嗨,你能用[]给出一个更一般的解决方案吗?如果我还想搜索一些随机的其他字符或字符集呢?这取决于你想匹配的字符。有些字符是特殊字符(例如,
[
]
,…),需要用反斜杠(
\?
)转义。您好,您能用[]给出更一般的解决方案吗?如果我还想搜索一些随机的其他字符或字符集呢?这取决于你想匹配的字符。有些字符是特殊字符(例如,
[
]
,…),需要用反斜杠(
\?
)转义。看见