JavaScript PHP gibi aynı değil Düzenli ifade

0 Cevap php

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?

0 Cevap