首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >PHP正则表达式用于匹配字母数字和连字符(而不是空格)作为子域

PHP正则表达式用于匹配字母数字和连字符(而不是空格)作为子域
EN

Stack Overflow用户
提问于 2017-03-02 15:03:23
回答 1查看 2.5K关注 0票数 3

我有下面的正则表达式,我将其解释为一个模式,它将匹配由字母数字字符和连字符组成的字符串。

代码语言:javascript
复制
if (preg_match('/[A-Za-z0-9-]/', $subdomain) === false) {
    // valid subdomain
}

问题是,这个regex也匹配空格,这在子域名中显然是不可取的。

对于积分,这是一种合适的方式来验证子域名?我不知道哪些特殊的字符是允许的,但我认为我只允许连字符来保持简单。还有什么需要我查的吗?例如最大长度?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-03-02 15:05:07

您的模式与字符串中任何位置的ASCII字母、数字或-匹配,如果找到,则返回true。如果您将$#$%$&^$g传递给它,它将返回true。

匹配由字母数字字符和连字符组成的字符串的模式是

代码语言:javascript
复制
if (preg_match('/^[A-Za-z0-9-]+$/D', $subdomain)) {
    // valid subdomain
}

详细信息

  • ^ -字符串的开始
  • [A-Za-z0-9-]+ -1或更多字符,它们要么是ASCII字母、数字,要么是-
  • $ -字符串的结尾
  • /D -一个PCRE_DOLLAR_ENDONLY修饰符,它使$锚点在字符串的最末端匹配(不包括字符串中最后换行符之前的位置)。
票数 10
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/42558881

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档