早上好。我正在尝试确定一个字符串是否包含特定字符的列表。
我知道我应该使用preg_match,但我的正则表达式知识很差,而且我无法从这个站点周围的其他帖子中收集任何信息。因为它们中的大多数只想将字符串限制为a-z、A-Z和0-9。但我确实希望允许某些特殊字符,例如:! @ £
和其他不在以下字符串中的字符。
要匹配的字符:# $ % ^ & * ( ) + = - [ ] \ ' ; , . / { } | \ " : < > ? ~
private function containsIllegalChars($string)
{
return preg_match([REGEX_STRING_HERE], $string);
}
我最初用Javascript编写匹配,它只是遍历字符串中的每个字母,然后遍历另一个字符串中的每个字符,直到找到匹配。回过头来看,我真不敢相信我竟然试图使用这样一种古老的方法。随着json的出现(以及应用程序的重写!),我将匹配切换到php,以通过json返回错误消息。
我希望正则表达式专家可以帮助将上面的字符串转换为正则表达式字符串,但任何反馈都将不胜感激!
发布于 2015-12-31 04:48:15
我认为您要查找的内容可以通过包含您想要允许的字符来大大简化,如下所示:
preg_match('/[^\w!@£]/', $string)
以下是正在发生的事情的快速分析:
的字符列表
https://stackoverflow.com/questions/13970412
复制相似问题