我正在尝试创建一个正则表达式,它将检测字符串中是否只有字母.任何人都可以告诉我,以下代码是否正确吗?
$text = "asdsad";
if (ereg('[^A-Za-z]', $text)) {
echo "More then letters";
}
else {
echo "only letters";
}
Run Code Online (Sandbox Code Playgroud)
ale*_*lex 11
如果这是你的意思,条件评估为真.
你想确保字符串只有字母吗?
试试这个...
if (preg_match('/^\pL+$/u', $text)) {
echo "Letters only";
} else {
echo "More than letters";
}
Run Code Online (Sandbox Code Playgroud)
所以你可以理解一些事情......
ereg()自PHP 5.3起已被弃用.停止使用它,并使用preg_match().preg_match(),需要指定正则表达式分隔符.大多数正则表达式使用/,但PHP允许您使用大多数匹配的字符,例如~测试用例.
$testCases = array(
'',
'abc',
'123',
'?????????',
'abc1',
'???????'
);
foreach($testCases as $str) {
echo '"' . $str . '" letters only? ' . var_export((bool) preg_match('/^\pL+$/u', $str), TRUE) . "\n";
}
Run Code Online (Sandbox Code Playgroud)
"" letters only? false
"abc" letters only? true
"123" letters only? false
"?????????" letters only? true
"abc1" letters only? false
"???????" letters only? true
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
7657 次 |
| 最近记录: |