PHP输入过滤:只有英文字母

时间:2010-06-25 13:06:07

标签: php

检查输入的最佳方法是什么,如果它包含来自其他语言的任何字符。 (英语除外)

3 个答案:

答案 0 :(得分:3)

if (preg_match("/[^\x00-\x7F]/",$string)) {
  // $string contains at least 
} else {
  // $string doesn't contain any foreign characters
}

这将检查ascii代码高于127的任何字符,因为如果它更高,则不在英文字母表中。 7位Ascii代码包含每个英文字符。

Ascii Table http://www.cs.utk.edu/~pham/ascii_table.jpg source

答案 1 :(得分:2)

如果这个

preg_match("/[^\x00-\x7F]/",$string)

不起作用(你找到没有结束分隔符'/')然后试试这个

preg_match('/[^\x00-\x7F]/',$string)

答案 2 :(得分:0)

$input = 'abcабв';
$out = array();
preg_match_all(
    "|[a-zA-Z]?|",
    $input,
    $out
);

$ out将包含所有非拉丁字符(абв)。