我正在使用preg_match来验证将用于子域名的输入文本字段。我只想允许字母数字拉丁小写字符和破折号,没有空格或其他任何东西。
以下内容就足够了吗?
if(preg_match('/^[a-zA-Z0-9 \-]+$/', $instance)) {
return true;
}发布于 2015-09-15 22:08:31
您当前使用的正则表达式允许a-z、A-Z 0-9和spance以及-(\仅用于转义)
所以你的正则表达式应该是这样的(只允许小写和-)
if(preg_match('/^[a-z0-9\-]+$/', $instance)) {
return true;
}发布于 2015-09-15 22:35:59
您拥有的表达式- ^[a-zA-Z0-9 \-]+$ -当前同时匹配大小写的拉丁字母、阿拉伯数字、空格和文字连字符。
您说您不想允许任何空格或大写字母。
在这种情况下,您需要做的就是将它们从character类中删除:
/^[a-z0-9-]+$/正则表达式分解:
^ - string[a-z0-9-]+ -1或多个字符的开头,这些字符可以是小写的拉丁字母(a-z)、数字(0-9)或连字符(在所有正则表达式风格中,字符类末尾的-几乎总是被视为文字(但一些奇怪的字符串末尾请参阅demo
https://stackoverflow.com/questions/32588099
复制相似问题