我正在尝试为 url 验证找到一个简单 正则表达式,但在正则表达式方面不是很好..
目前我有这样的正则表达式:(/^https?:\/\/\w/).test(url)
因此它允许将 url 验证为 http://localhost:8080
等
我想做的是不验证 url 是否在末尾有一些长的特殊字符,例如:http://dodo ......
或 http://dododo&&&&&
你能帮帮我吗?
最佳答案
这个怎么样?
/^http:\/\/\w+(\.\w+)*(:[0-9]+)?\/?(\/[.\w]*)*$/
将匹配:http://domain.com:port/path
或只是 http://domain
或 http://domain:port
/^http:\/\/\w+(\.\w+)*(:[0-9]+)?\/?$/
匹配没有路径的 URL
正则 block 的一些解释:
域: \w+(\.\w+)*
以匹配带点的文本:localhost
或 www.yahoo。 com
(可以是 Path 或 Port 部分开始)
端口: (:[0-9]+)?
匹配或不匹配以分号开头的数字::8000
(也可能只有一个)
路径: \/?(\/[.\w]*)*
匹配任何带斜杠和点的字母数字:/user/images/0001.jpg
(直到行尾)
(path 是非常有趣的部分,现在我这样做是为了允许单独或相邻的点,即这样的表达式是可能的:/.
或 /./
或 /.../
等。如果您想在 path 中使用点,例如在 domain 部分 -没有边框或相邻的点,然后使用 \/?(\/\w+(.\w+)*)*
正则表达式,类似于 domain 部分。)
* 已更新 *
此外,如果您希望在您的 URL(或任何其他)中包含(它是有效的)-
字符,您应该简单地扩展字符类为“URL文本匹配”,即 \w+
应该变成 [\-\w]+
等等。
关于javascript - 正则表达式 javascript - url 与本地主机匹配,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18696796/