我正在开发一个基于PHP的系统,该系统计划在欧洲各地推出,对于某个表单字段,我试图将输入限制为仅字母字符。
然而,这可以伪装成英语字母表,也可以伪装成德语、拉脱维亚语、波兰语、法语、西班牙语等字母表。
我在看ISO-8859-1(http://en.wikipedia.org/wiki/Western_Latin_character_sets_(计算)#Comparison_table),就字母表而言,这似乎相当完整。但我看不出简单的方法来区分字母表字符和我在英语中所知道的"特殊字符"。
我也意识到,就ISO-8859-1而言,我可能找错了树。我已经多年没有以类似的方式处理角色集了,所以也许有更好的方法来实现这一点?
脑海中浮现的特殊字符是:
- `
- %
还有更多。
有现成的函数可以用PHP或任何其他快捷方式完成这项任务吗?
您可以手动编写特殊字符并使用函数preg_match():
$chars="ÉäÖÅå!%"//添加您也可以添加,通常的拉丁字符已经添加
if (isset($_GET['name'])){
if (preg_match("/^[A-Za-z{$chars}]+$/", $_GET['name'])){
echo "Input ok, proceed") ;
//Do stuff
} else {
echo "Some of characters in your input are not allowed" ;
}
} else {
echo "The no form submitted" ;
}
这个库似乎在做你想要做的事情:https://github.com/jbroadway/urlify