我用這個正則表達式中的JavaScript我的網頁,它完美地工作:正則表達式的工作原理與JavaScript,但不是PHP
var nameRegex = /^([ \u00c0-\u01ffa-zA-Z'\-])+$/;
return nameRegex.test(name);
我當時就想,包括它在我的PHP腳本,以防第二阻擋用戶禁用JavaScript等。但是,無論何時使用它,它都會使我通過它的每個字符串都失敗,甚至是正確的名稱。 我試着用單引號停止轉義字符,但後來我不得不逃離包含的正則表達式中的單引號,以及與此想出了:
$nameRegex = '/^([ \u00c0-\u01ffa-zA-Z\'\-])+$/';
if ($firstName == ""){
$valSuccess = FALSE;
$errorMsgTxt .= "Please enter your first name<br>\n";
} elseif (!preg_match($nameRegex, $firstName)){
$valSuccess = FALSE;
$errorMsgTxt .= "Please enter a valid first name<br>\n";
}
但是,再次失敗有效的名稱。
所以我的問題是,我如何使我的正則表達式在PHP中使用「安全」?
你有沒有試過讓你的正則表達式對u修飾符友好? '/ ^([\ u00c0- \ u01ffa-zA-Z \'\ - ])+ $/u'; – Calimero
@Calimero感謝您的建議,但仍然不起作用 – supersheep97
@ user2180613仍然沒有快樂我害怕 – supersheep97