Ben adlarını eşleştirmek için normal bir ifade var (hangi kullanarak PHP fonksiyonları preg_match
):
/[a-z]+(?(?=\-)[a-z]+|)\.[1-9][0-9]*/
Bu model, formun kullanıcı adı abc.124
, abc-abc.123
, vb maçlar
Ancak, JavaScript için bu alırken:
var re = new RegExp("/[a-z]+(?(?=\-)[a-z]+|)\.[1-9][0-9]*/");
Ben bir sözdizimi hatası alırsınız:
SyntaxError: Invalid regular expression: /[a-z]+(?(?=-)[a-z]+|).[1-9][0-9]*/: Invalid group
(?(?=\-)[a-z]+|)
[a-z]+
bir -
o [a-z]+
, aksi takdirde ondan sonra maç hiçbir şey iddia gördükten sonra eğer söylemektir. Bu, tüm PHP harika çalışıyor, ama ben farklı JavaScript hakkında ne eksik?
EDIT: Ben yorum için teşekkür ederiz, ve şimdi ben bu konu ile ilgili son bir sorum var:
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);
Bu uyarı olarak geliyor null
? Ben şu Ama eğer çalışır:
var patt=/[a-z]+(?:-[a-z]+)?\.[1-9][0-9]*/;
var result=patt.exec(str);
alert(result);
Neden "Yeni RegExp ()" çalışmıyor?