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

Jam*_*uth 8 javascript regex

我坐在这里手里拿着"好零件",但我仍然没有更聪明.

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

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

干杯.

loc*_*zak 20

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

说的是替换|(你需要逃避这个角色)或(|),

好的Cheatsheet在这里

  • 或者`/ [|,]/g`因为它只是一个字符. (6认同)

Cod*_*key 7

如果你真的想要理解正则表达式(以及大多数实现/风格的特殊警告或怪癖),我发现的最好的资源是Regular-Expressions.info.

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

编辑:

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

使用:

var newString = str.replace(/[|,]/g, ";");
Run Code Online (Sandbox Code Playgroud)

这将用分号替换a |或a,

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

  • 首先,你可以指定字符的范围([a-zA-Z]指从任何信件azAZ).
  • 其次,把一个插入符号(^)在字符类的开头否定它-它意味着什么不能在这个字符类([^0-9]指不是来自任何字符09).
  • 把开头的仪表板和插入符号的字符类的末尾这些字符字面匹配,或者与其他地方逃出他们在课堂上\,如果你喜欢