[英]Can I use javascript regular expression in php as it is
我在javascript中使用正則表達式,並希望使用相同的正則表達式進行服務器端驗證。 我需要修改它以使其兼容,還是按原樣運行。
如何使用PHP正則表達式。 請提供一個小例子。
提前致謝
編輯
用於電子郵件驗證
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);
對於電話沒有驗證
var pattern = new RegExp(/^\(?(\d{3})\)?[- ]?(\d{3})[- ]?(\d{4})$/);
假設適用於大多數模式,除了轉義特殊字符和反斜杠,但不反向,php正則表達式具有javascript之類的功能,就像看后面的表達式一樣。
javascript : /[a-z]+/
php : '/[a-z]+/'
例如,
var pattern = new RegExp(/^\\(?(\\d{3})\\)?[- ]?(\\d{3})[- ]?(\\d{4})$/);
將是'/^\\(?(\\d{3})\\)?[- ]?(\\d{3})[- ]?(\\d{4})$/'
在php中
您應該使用以下函數之一preg_match或preg_match_all 。 運氣好的話,你不需要修改你的正則表達式。 PHP正則表達式使用經典的Perl正則表達式,因此匹配看起來像preg_match_all('/([a-zA-Z0-9]+)/', $myStringToBeTested, $results);
稍后編輯:
$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!";
請享用!
在PHP中,我們使用函數preg_match 。
$email_pattern = '/^(("[\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';
$phoneno_pattern = '^/\(?(\d{3})\)?[- ]?(\d{3})[- ]?(\d{4})$/';
if(preg_match($email_pattern,$input_email)) {
// valid email.
}
if(preg_match($phoneno_pattern,$input_ph)) {
// valid ph num.
}
您可以直接使用正則表達式作為函數參數,而不是使用變量。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.