我使用preg_match来验证将用于子域名的输入文本字段。我只想允许字母数字拉丁文小写字符,并且没有空格或任何其他内容。
以下是否足够
if(preg_match('/^[a-zA-Z0-9 \-]+$/', $instance)) {
return true;
}
答案 0 :(得分:0)
你正在使用的正则表达式是允许a-z,A-Z 0-9和spance和 - (\只是用于转义)
所以你的正则表达式会是这样的(只允许使用小写和 - )
if(preg_match('/^[a-z0-9\-]+$/', $instance)) {
return true;
}
答案 1 :(得分:0)
您拥有的表达式 - ^[a-zA-Z0-9 \-]+$
- 目前匹配大写和小写拉丁字母,阿拉伯数字,空格和字面连字符。
你说你不想允许任何空格或大写字母。
在这种情况下,您只需要将它们从字符类中删除它们:
/^[a-z0-9-]+$/
正则表达式分解:
^
- 字符串的开头[a-z0-9-]+
- 一个或多个字符为小写拉丁字母(a-z
)或数字(0-9
)或连字符(-
字符类几乎总是被认为是所有正则表达式中的文字(但有些奇怪的)()$
- 字符串结束。请参阅demo