【发布时间】:2013-05-13 04:51:41
【问题描述】:
我知道如何编写相当简单的正则表达式,我的问题是关于一次更改多个字符或多个字符 - 不超过一个字符或多个字符的实例,但多个匹配字符或字符以分隔值一键更换。
例如,如果我想将文本区域中的所有换行符更改为
,我可能会编写代码:
var withoutNewLines = document.getElementById("taInput").value.replace(/\n/g, "<br>");
如果我想将所有空格更改为 ,我会编写代码:
var withoutNewLines = document.getElementById("taInput").value.replace(/ /g, " ");
如果我想在一个语句中同时更改两者,我会编写代码:
var withoutNewLines = document.getElementById("taInput").value.replace(/\n/g, "<br>").replace(/ /g, " ");
我的问题是:
有没有办法编写一个正则表达式,只需调用一次 replace() 就可以进行这两项更改?
【问题讨论】:
-
查看 MDN 文档中的 RegExp 和替换方法,您会发现可以使用“|”在正则表达式中充当“或”,您可以将函数作为第二个参数传递给替换调用
-
对于全局替换,Ian 的解决方案有效,但我可能会像您的问题一样运行两个单独的替换调用。
-
@OldPro 我同意,我只是想提供我认为他们正在寻找的东西 :)
标签: javascript regex replace textarea getelementbyid