PHP仅允许使用字母数字拉丁文小写字符和破折号

时间:2015-09-15 14:01:08

标签: php regex

我使用preg_match来验证将用于子域名的输入文本字段。我只想允许字母数字拉丁文小写字符,并且没有空格或任何其他内容。

以下是否足够

if(preg_match('/^[a-zA-Z0-9 \-]+$/', $instance)) {
     return true;
}

2 个答案:

答案 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