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

前端之家收集整理的这篇文章主要介绍了ruby-on-rails – Ruby中有效子域的正则表达式前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我试图验证将用作子域的用户输入字符串.规定如下:

>长度在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-z\d]+(-[a-z\d]+)*$/i

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

/^[a-z\d]+([-_][a-z\d]+)*$/i

将允许非连续的下划线.

猜你在找的Ruby相关文章