在Javascript中用正则表达式替换管道和逗号

在Javascript中用正则表达式替换管道和逗号,javascript,regex,Javascript,Regex,我坐在这里,手里拿着“好的部分”,但我仍然一点也不明白 有人能帮我编一个正则表达式来替换字符串中“|”和“,”的任何实例吗 另外,有谁能告诉我一个学习正则表达式的好资源的方向,特别是javascript(它们是一种特殊的风格吗??)这确实是我知识中的一个弱点 干杯。str.replace(/(\\| |,)/g,“replaceWith”)不要忘记结尾的g,这样它会全局搜索字符串,如果不放置,正则表达式只会替换字符的第一个实例 所说的是替换(您需要转义此字符)或(), 如果您真的想了解正则表达式

我坐在这里,手里拿着“好的部分”,但我仍然一点也不明白

有人能帮我编一个正则表达式来替换字符串中“|”和“,”的任何实例吗

另外,有谁能告诉我一个学习正则表达式的好资源的方向,特别是javascript(它们是一种特殊的风格吗??)这确实是我知识中的一个弱点

干杯。

str.replace(/(\\| |,)/g,“replaceWith”)
不要忘记结尾的
g
,这样它会全局搜索字符串,如果不放置,正则表达式只会替换字符的第一个实例

所说的是替换
(您需要转义此字符)或(


如果您真的想了解正则表达式(以及大多数实现/风格的特殊注意事项或怪癖),我找到的最好的资源是

如果你真的喜欢正则表达式,我建议你使用名为RegexBuddy的产品来测试和调试各种语言中的正则表达式(虽然有一些东西它不太支持,但总体来说还是不错的)

编辑:

最好的方法(我认为,尤其是如果你考虑可读性)是使用字符类而不是交替(即:<代码> []/COD>而不是<代码> )

使用:

这将用分号替换
|

character类本质上意味着“匹配这些方括号内的任何内容”——只有少数例外

  • 首先,您可以指定字符范围(
    [a-zA-Z]
    表示从
    a
    Z
    或从
    a
    Z
    的任何字母)
  • 其次,将插入符号(
    ^
    )放在字符类的开头会将其取反-它表示不在此字符类中的任何字符(
    [^0-9]
    表示不从
    0
    9
    的任何字符)
  • 将破折号放在字符类的开头,插入符号放在字符类的结尾,以便按照字面意思匹配这些字符,或者如果愿意,可以使用
    \
    将它们转义到类中的任何其他位置

/[|,]/g
因为它只是一个字符。@locrizak:干杯,行了。。。。谢谢你的资源链接。是的,我也看到你的作品了。这两者之间有什么区别?@James South:
[xyz]
定义了一组字符,相当于
(x | y | z)
,但没有分组表达式。
var newString = str.replace(/[|,]/g, ";");