Chr*_*ris 2 javascript php regex
我有一个正则表达式来匹配用户名(在PHP中使用的函数preg_match):
/[a-z]+(?(?=\-)[a-z]+|)\.[1-9][0-9]*/
Run Code Online (Sandbox Code Playgroud)
此模式匹配的形式的用户名abc.124,abc-abc.123等
但是,当我把它带到JavaScript:
var re = new RegExp("/[a-z]+(?(?=\-)[a-z]+|)\.[1-9][0-9]*/");
Run Code Online (Sandbox Code Playgroud)
我收到语法错误:
SyntaxError: Invalid regular expression: /[a-z]+(?(?=-)[a-z]+|).[1-9][0-9]*/: Invalid group
Run Code Online (Sandbox Code Playgroud)
该(?(?=\-)[a-z]+|)是说,如果以后[a-z]+我们看到了-那么断言[a-z]+是后否则,比赛什么都没有.这在PHP中都很有用,但是我对JavaScript的不同之处是什么?
编辑:我很感谢评论,现在我有一个关于这个的最后一个问题:
var str="accouts pending removal shen.1206";
var patt= new RegExp("/[a-z]+(?:-[a-z]+)?\.[1-9][0-9]*/");
var result=patt.exec(str);
alert(result);
Run Code Online (Sandbox Code Playgroud)
这个警报出现了null吗?但如果我做以下工作,它的工作原理:
var patt=/[a-z]+(?:-[a-z]+)?\.[1-9][0-9]*/;
var result=patt.exec(str);
alert(result);
Run Code Online (Sandbox Code Playgroud)
为什么"新的RegExp()"不起作用?