加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

ruby-on-rails – Ruby中有效子域的正则表达式

发布时间:2020-12-16 22:49:48 所属栏目:百科 来源:网络整理
导读:我试图验证将用作子域的用户输入字符串.规定如下: 长度在1到63个字符之间(我从Google Chrome中显示的角色数量取63个子域,不知道它是否实际上是一个服务器指令.如果您对有效的最大长度有更好的建议,我有兴趣听到它) 可能包含a-zA-Z0-9,连字符,下划线 不能以
我试图验证将用作子域的用户输入字符串.规定如下:

>长度在1到63个字符之间(我从Google Chrome中显示的角色数量取63个子域,不知道它是否实际上是一个服务器指令.如果您对有效的最大长度有更好的建议,我有兴趣听到它)
>可能包含a-zA-Z0-9,连字符,下划线
>不能以连字符或下划线开始或结尾

编辑:从下面的输入,我添加了以下内容:
4.不应包含连续的连字符或下划线.

例子:

a => valid
0 => valid
- => not valid
_ => not valid
a- => not valid
-a => not valid
a_ => not valid
_a => not valid
aa => valid
aaa => valid
a-a-a => valid
0-a => valid
a&a => not valid
a-_0 => not valid
a--a => not valid
aaa- => not valid

我的问题是我不知道如何使用RegEx指定字符串只允许一个字符,同时也指定它可能不以连字符或下划线开头或结尾.

谢谢!

解决方法

你不能在正确的子域中有下划线,但是你需要它们吗?修剪你的输入后,做一个简单的字符串长度检查,然后用这个测试:
/^[a-zd]+(-[a-zd]+)*$/i

以上所述,您不会得到连续的字符,例如a-bbb-ccc通过和失败.

/^[a-zd]+([-_][a-zd]+)*$/i

将允许非连续的下划线.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读