【发布时间】:2015-10-11 07:49:27
【问题描述】:
我必须在某些文本中识别 url。
我使用以下代码(this.value 是文本):
if (new RegExp("([a-zA-Z0-9]+://)?([a-zA-Z0-9_]+:[a-zA-Z0-9_]+@)?([a-zA-Z0-9.-]+\\.[A-Za-z]{2,4})(:[0-9]+)?(/.*)?").test(this.value)) {
alert("url inside");
}
将电子邮件地址也识别为 url 的问题。 如何预防?
【问题讨论】:
-
该正则表达式将只匹配某些 URI(例如,本地/实验协议应以“x-”开头)。如果您不想匹配所有协议,了解您想要匹配哪些协议会有所帮助?
-
@Richard- 我想要匹配所有协议
-
mailto:是一个有效的匹配......或者你不应该将协议设为可选? -
@Richard- 协议应该只匹配 url,而不是电子邮件地址
-
“我想要匹配所有协议”“不匹配电子邮件地址”---所以做出决定,全部还是不?所有的字面意思是全部。
标签: javascript regex url-validation