我需要验证应该类似于的网址
google.com or
yahoo.co.uk etc
我的意思是我不需要 http 或 www。 我的正则表达式代码是这样的。但它对我不起作用。
/^[a-zA-Z0-9][a-zA-Z0-9-][a-zA-Z0-9]\.[a-zA-Z]{2,}$/
最佳答案
您当前的正则表达式不起作用,因为它需要 .
之前正好三个字符:首先是与 [a-zA-Z0-9]
匹配的字符,然后匹配 [a-zA-Z0-9-]
的字符,然后匹配 [a-zA-Z0-9]
的字符。您的正则表达式仅允许输入中任意位置出现单个 .
。
对于可变长度字符串,您需要使用 +
或 *
或 {}
语法,就像您对正则表达式的最后部分所做的那样.
要保持与您似乎想要的基本相同的验证,但让它适用于不同的长度,请尝试:
/^[A-Z\d-]+(\.[A-Z\d-]+)*\.[A-Z]{2,}$/i
即:
[A-Z\d-]+
匹配一个或多个字母、数字或连字符,后跟
(\.[A-Z\d-]+)*
零个或多个点实例,后跟一个或多个这些字符,最后是
\.[A-Z]{2,}
最后一个点包含两个或多个 A-Z。
请注意,如果您将 i
标志添加到正则表达式以使其不区分大小写,则只需使用大写的 A-Z
范围即可。
关于javascript - 有效 url 的正则表达式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16337453/