前端checkUrl函数继续打补丁
这个检测url的函数,又需要打补丁了。这次碰到2个问题,一个是新的后缀域名.institute,一个是url中的$符号不识别,一并解决了。
第一个问题以为比较好解决,此时直奔上次添加的xyz的地方,并把它加到了这里|xyz|institute|y
,结果在线测试的时候,发现只能匹配到in就停止了,发现正则里面有这一段(?:info|int|i[delmnoqrst])
,这应该是针对i开头的可选组,而它可以匹配到in,再之后就不匹配了……于是修改为(?:info|int|institute|i[delmnoqrst])
,问题解决
第二个问题,在于结尾的特殊符号里缺少$,且结尾匹配中多了$,将(\/(?:(?:[a-zA-Z0-9\;\/\?\:\@\&\=\#\~\-\.\+\!\*\'\(\)\,\_])|(?:\%[a-fA-F0-9]{2}))*)?(?:\b|$)
改成下面就解决了。
(\/(?:(?:[a-zA-Z0-9\;\/\?\:\@\&\=\#\~\-\.\+\!\*\'\(\)\,\_$])|(?:\%[a-fA-F0-9]{2}))*)?(?:\b|)
不过不明白为什么$不需要转义?它不是代表字符串的结尾吗?这里暂留一个疑问。
最后推荐这个正则在线测试网站,直观、迅速、支持多语言
http://regex101.com