确定字符串验证消息的优先级



在PHP中,我们如何将一个检查的结果消息优先于另一个检查?

我的 PHP 文件中有两个不同的 if 条件,有两个不同的消息。

某些字符串同时匹配两者,但即使if (preg_match)位于脚本中的if !(preg_match)上方,结果也会显示错误 msg!(preg_match)

例:

if (preg_match('/^[x{0600}-x{06FF}]*$/u', $value)){
$return = $register_msg['ihc_error_please_write_yourname_in_english'];
}
if (!preg_match('~[eyuioa]~',$value)) {
$return = $register_msg['ihc_error_no_vowels_found'];
}

现在,例如,当用户通过阿拉伯字符输入他的名字时,尽管他的字符串同时满足这两个条件,但不幸的是,他会['ihc_error_no_vowels_found']而不是['ihc_error_please_write_yourname_in_english']

您可以使用

$register_msg = ['ihc_error_please_write_yourname_in_english' => 'English, please!', 'ihc_error_no_vowels_found' => 'No vowels!' ];
$value = 'سبعة';
$return = "";
if (preg_match('/^[x{0600}-x{06FF}]*$/u', $value)){
$return .= $register_msg['ihc_error_please_write_yourname_in_english'] . PHP_EOL;
} else if (preg_match('~^[A-Za-z]+$~',$value) && !preg_match('~[eyuioa]~',$value)) {
$return .= $register_msg['ihc_error_no_vowels_found'] . PHP_EOL;
}
echo $return;

查看带有阿拉伯语单词的 PHP 演示

English, please!

并且具有SFGH值(请参阅此PHP演示(产生

No vowels!

preg_match('~^[A-Za-z]+$~',$value)检查字符串是否仅由 1+ ASCII 字母组成。

最新更新