Javascript中是否有任何方法可以使用与/
(正斜杠)不同的字符作为正则表达式中的分隔符?
大多数其他语言都有这样做的方法。
例如,Perl:
m@myregex@
我们是否仅限于使用" /"在Javascript?
答案 0 :(得分:9)
在JavaScript中使用正则表达式的简单方法是使用/
字符分隔它。但是,如果要使用全局对象RegExp
,则需要使用普通字符串转义规则将字符串作为构造函数的第一个参数传入。以下是等效的。
// shorthand way.
var re = /\w+/;
// a way to pass a string in
var re = new RegExp("\\w+");
答案 1 :(得分:6)
我们是否仅限于使用" /"在JavaScript中?
不是......您可以使用new RegExp (string)
constructor.
var re = new RegExp (string);
请记住,这需要你双重逃避而不是单一逃脱。
答案 2 :(得分:5)
在Javascript中,如果要内联正则表达式,则唯一的选择是转发分隔符:/foo/
正如其他答案所述,您还可以使用new Regexp("foo")
将正则表达式分配给变量。
使用多个分隔符绝对是一个Perl的东西。在Perl中,您几乎可以使用任何字符作为分隔符,例如使用字符串:
使用单引号的典型语法 - 'dipset'
使用q函数 - q(dipset)
q!dipset!
q%dipset%
这是否会产生可读性取决于上下文...如果结果是可读的,那么Perl允许你这样做很好。例如,正则表达式是不可读的,内部没有一堆转义反斜杠。