URL 必须采用以下形式:http://host.domain/scriptname.extension,无查询字符串。即,这是一个有效的 URL:http://abc.axx.loc:8000/abcd.aspx。我试着像下面那样做,但效果不好,有人可以帮忙吗?谢谢。
var RegExp = /((h|H)(t|T)(t|T)(p|P)|(h|H)(t|T)(t|T)(p|P)(s|S)):\/\/(\w+:{0,1}\w*@)?(\S+)(:[0-9]+)?\/\w+\.\w+$/;
URL 必须采用以下形式:http://host.domain/scriptname.extension,无查询字符串。即,这是一个有效的 URL:http://abc.axx.loc:8000/abcd.aspx。我试着像下面那样做,但效果不好,有人可以帮忙吗?谢谢。
var RegExp = /((h|H)(t|T)(t|T)(p|P)|(h|H)(t|T)(t|T)(p|P)(s|S)):\/\/(\w+:{0,1}\w*@)?(\S+)(:[0-9]+)?\/\w+\.\w+$/;
尝试以下操作:
var RegExp = /^https?:\/\/\w+\.\w+\/\w+\.\w+(:\d+)?$/i
这将在您提供的模型中有效http
地使用不区分大小写的 url 。https
final i
(它被命名为修饰符)为不区分大小写的技巧做了所有的魔法。
/((h|H)(t|T)(t|T)(p|P)|(h|H)(t|T)(t|T)(p|P)(s|S)):\/\/(\w+:{0,1}\w*@)?(\S+)(:[0-9]+)?\/\w+\.\w+$/.test("http://abc.axx.loc:8000/abcd.aspx")
工作表。但是,有几点:
RegExp
- 那是 JS 正则表达式的构造函数,不应该被覆盖(h|H)
... 方案\S+
匹配所有非空白字符,这几乎是 URL 中的所有内容。这可能允许您不想要的查询字符串。我建议
/^https?:\/\/(\w+(:\w+)?@)?[\w.]+(:\d+)?\/\w+\.\w+$/i
或使用用户登录省略该部分,只允许@
和:
在域中:
/^https?:\/\/[\w.:@]+\/\w+\.\w+$/i
var RegExp = /^https?\/\/[\w\-\.]+(:\d+)?\/[\w\-]+\.[\w\-]+$/i;
注意 // 块 [\w\-\.]+ 用于主机和域组合之后。它应该匹配 host.domain 以及 host.subdomain1.subdomain2.domain 等。
开头和结尾的 ^ 和 $ 很重要,因此它匹配字符串的开头和结尾。
还要注意 \w\- 的使用,因为单独的 \w 是不够的,因为它不捕获破折号。