优先考虑字符串验证消息

时间:2018-06-07 08:16:52

标签: php regex preg-match

在PHP中,我们如何优先考虑一个检查的结果消息而不是另一个?

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

某些字符串与两者匹配,但即使if !(preg_match)位于脚本中的!(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']而不是获得{{1}}。

1 个答案:

答案 0 :(得分:1)

您可以使用

htmlmin: {
  dist: {
    options: {
      removeComments: true,
      collapseWhitespace: true,
      minifyJS: true,
      minifyCSS: true,
      processScripts: ['application/ld+json']
    },
    files: [{
      expand: true,
      cwd: '_site',
      src: ['**/*.html', '**/*.xml'],
      dest: '_staging/'
    }]
  }
},

请参阅PHP demo,其中包含阿拉伯语单词

$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;

使用English, please! 值(请参阅this PHP demo)得出

SFGH

No vowels! 检查字符串是否只包含1个以上的ASCII字母。