Olduğu gibi ben php javascript normal bir ifade kullanabilirsiniz

4 Cevap php

Ben javascript düzenli ifade kullanarak ve aynı düzenli ifade ile de sunucu tarafında doğrulama yapmak istiyorum ben. I uyumlu hale getirmek için onu değiştirmek gerekir mi ya da olduğu gibi çalışacaktır.

PHP normal ifadeyi nasıl kullanılır. Küçük bir örnek verin.

Şimdiden teşekkürler

EDIT

E-posta Doğrulaması

var pattern = new RegExp(/^(("[\w-\s]+")|([\w-]+(?:\.[\w-]+)*)|("[\w-\s]+")([\w-]+(?:\.[\w-]+)*))(@((?:[\w-]+\.)*\w[\w-]{0,66})\.([a-z]{2,6}(?:\.[a-z]{2})?)$)|(@\[?((25[0-5]\.|2[0-4][0-9]\.|1[0-9]{2}\.|[0-9]{1,2}\.))((25[0-5]|2[0-4][0-9]|1[0-9]{2}|[0-9]{1,2})\.){2}(25[0-5]|2[0-4][0-9]|1[0-9]{2}|[0-9]{1,2})\]?$)/i);

Telefon için hiçbir doğrulama

var pattern = new RegExp(/^\(?(\d{3})\)?[- ]?(\d{3})[- ]?(\d{4})$/);

4 Cevap

You should use one of the following functions preg_match or preg_match_all. And with a bit of luck you shouldn't need to modify your regex. PHP regex uses the classic Perl regex, so a match would look like preg_match_all('/([a-zA-Z0-9]+)/', $myStringToBeTested, $results);

Daha sonra edit:

$string="test@mail.com";

if(preg_match('/^(("[\w-\s]+")|([\w-]+(?:\.[\w-]+)*)|("[\w-\s]+")([\w-]+(?:\.[\w-]+)*))(@((?:[\w-]+\.)*\w[\w-]{0,66})\.([a-z]{2,6}(?:\.[a-z]{2})?)$)|(@\[?((25[0-5]\.|2[0-4][0-9]\.|1[0-9]{2}\.|[0-9]{1,2}\.))((25[0-5]|2[0-4][0-9]|1[0-9]{2}|[0-9]{1,2})\.){2}(25[0-5]|2[0-4][0-9]|1[0-9]{2}|[0-9]{1,2})\]?$)/', $string))
    echo "matches!";
else
    echo "doesn't match!";

Tadını çıkarın!

Özel karakter ve ters bölü kaçan hariç, desen çoğu için çalışmak, ama php regex ifadelerin arkasında javascript gibi bakmak daha özelliklere sahip, ters gerekiyordu.

javascript : /[a-z]+/
php        : '/[a-z]+/'

Örneğin,

var pattern = new RegExp(/^\(?(\d{3})\)?[- ]?(\d{3})[- ]?(\d{4})$/);

'/^\(?(\d{3})\)?[- ]?(\d{3})[- ]?(\d{4})$/' php olurdu

PHP regexp are based on PCRE (Perl Compatible Regular Expression). Example (find digits) :

preg_match('/^[0-9]*$/', 'my01string');

Bkz php documentation.

Javascript sıradanifade (ECMA) biraz farklıdır.

var patt1 = new RegExp("e");
document.write(patt1.test("The best things in life are free"));

Bir karşılaştırma tablosu için here bakın.