javascript - 用js构建正则表达式字符串

标签 javascript regex replace

<script>
var String = "1 Apple and 13 Oranges";
var regex = /[^\d]/g;
var regObj = new RegExp(regex);
document.write(String.replace(regObj,'')); 
</script>

它工作正常 - 返回字符串中的所有数字。

但是当我像这样在正则表达式周围加上引号时:

var regex = "/[^\d]/g"; 这行不通

在这种情况下,如何将字符串转换为有效的正则表达式?

谢谢

最佳答案

您可以通过两种方式创建正则表达式,使用正则表达式文字符号或 RegExp 构造函数。看来你把两者搞混了。 :)

这里是字面的方式:

var regex = /[^\d]/g;

在这种情况下,您没有使用引号。/末尾的字符作为分隔符,您在末尾指定标志。

这里是如何使用 RegExp 构造函数,在其中将模式和标志(可选)作为字符串传递。当您使用字符串时,您必须使用“\”转义其中的任何特殊字符。

由于“\”(反斜杠)是一个特殊字符,如果您使用双引号,则必须使用另一个反斜杠对反斜杠进行转义。

var regex = new RegExp("[^\\d]", "g");

希望这是有道理的。

关于javascript - 用js构建正则表达式字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13584655/

相关文章:

javascript - 如何在 HTML 标签的属性中设置 JavaScript 变量

javascript - 从 window.onbeforeunload 中排除 DIV 内的点击

regex - 制作一个包含我的列表项的文本文件并对其应用正则表达式

java - 正则表达式在java中提供额外的输出

javascript - 在异步函数内的回调中调用 await

javascript - 在另一个实例方法事件处理程序中调用 this.instanceMethod

r - 在 R 中拆分包含多个分隔符的字符串

使用另一个数据帧作为 R 中的键替换数据帧中的所有值

regex - 在 Perl 正则表达式 "find & replace"中,如何单独挑选每个匹配结果?

search - VIM 搜索并替换以美元开头的整个单词