我用这个正则表达式中的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