我有以下正则表达式:
/[0-9#%@_$&!?^\/|*<>]+/i
它不应该接受信件。如果一开始没有输入字母,它会接受字母。
例如: 如果我输入“123e”,它会找到一个匹配项(但不应该,因为有一个字母)
我的正则表达式有什么问题?
谢谢
最佳答案
您的正则表达式会检查您指定的列表字符中是否有一个或多个 -- 123e
也是如此。
它不检查字符串是否只包含那些。
你可能想编辑你的正则表达式,所以它看起来像这样:
/^[0-9#%@_$&!?^/|*<>]+$/i
我在其中添加了以下两个 anchors :
^
表示“字符串/行的开始”$
表示“字符串/行结束”
这意味着正则表达式将检查您的字符串是否以您的字符之一开头、以其中一个字符结尾并包含这些字符。
关于php - 正则表达式的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6771576/