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

时间:2011-10-17 15:08:45

标签: javascript regex

我坐在这里手里拿着“好的部分”,但我仍然没有更聪明。

任何人都可以为我敲一个正则表达式,这将允许我替换“|”的任何实例和“,”来自一个字符串。

另外,有人能指出我学习正则表达式的非常好的资源方向,特别是在javascript中(它们是一种特殊的味道吗?)在我的知识中它确实是一个弱点。

干杯。

2 个答案:

答案 0 :(得分:19)

str.replace(/(\||,)/g, "replaceWith")不要忘记最后的g所以它会全局地传递字符串,如果你不把它放在正则表达式只会替换第一个字符实例。

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

Nice Cheatsheet here

答案 1 :(得分:7)

如果您真的想要了解正则表达式(以及大多数实现/风格中的任何一个的特殊警告或怪癖),我发现的最佳资源是Regular-Expressions.info

如果你真的进入正则表达式,我会推荐使用名为RegexBuddy的产品来测试和调试各种语言的正则表达式(尽管有一些东西它不支持 支持,它整体而言相当不错)

修改

最好的方式(我认为,特别是如果你考虑可读性)是使用字符类而不是替换(即:[]而不是|

使用:

var newString = str.replace(/[|,]/g, ";");

这将用分号替换|,

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

  • 首先,您可以指定字符范围([a-zA-Z]表示从az或从AZ的任何字母。
  • 其次,将插入符号(^)放在字符类的开头否定 - 它表示此字符类中的任何({{ 1}}表示任何非[^0-9]0}的字符。
  • 将短划线放在开头,将插入符号放在字符类的末尾,以便按字面意义匹配这些字符,或者如果您愿意,可以使用9将其转移到班级中的任何其他位置