【发布时间】:2017-08-20 02:00:48
【问题描述】:
我需要检查 php 中的文本并且只允许英文
我的代码是:
应该匹配:
Gautier-, !@#$%^&*()_+|';?>< A.; R.; Falcs, J.M;
不应匹配:
Problem dojrzałościmałżeństwa"; // not allowed
book for محمد taj
Еос ферри
代码:
if (! preg_match('/^[a-z0-9 .\-]+$/i', $string) )
{
echo "Not allowed";
}
但不工作
【问题讨论】:
-
“只允许英语”与限制可能的字符集有什么关系?这种方法相当幼稚(完全有效的英语单词),或者就像我们在德语中所说的那样,“dumm wie Brot” - 现在您要限制哪些字符以排除 that ...?
-
波兰语单词“tlen”(以及许多其他)仅包含 ASCII 字母,没有正则表达式会告诉您它不是英语。这是 NLP 语言猜测算法的任务。要仅检查字符串是否仅包含 ASCII 字符,请使用
^[[:ascii:]]+$。 -
成功了!非常感谢...@WiktorStribiżew
-
if (! preg_match('%^[ -~]+$%', $string) ) { echo "Not allowed"; }成功了!