做一个......
var URLPattern = '^(ht|f)tp(s?)\:\/\/[0-9a-zA-Z]([-.\w]*[0-9a-zA-Z])*(:(0-9)*)*(\/?)([a-zA-Z0-9\-\.\?\,\'\/\\\+&%\$#_]*)?';
alert(str.match(URLPattern));
它会正确匹配网址,但会附加
,ht,,m,,,,
到网址的末尾
我该怎么做才能解决这个问题?
答案 0 :(得分:0)
查看.match
返回的内容:由匹配和匹配的capturing groups组成的数组。
使用
var result = str.match(URLPattern);
alert(result != null ? result[0] : "nothing found");
是的,你的正则表达式是不正确构造的。使用regex literal代替吃掉反斜杠的字符串文字:
var URLPattern = /^(ht|f)tp(s?)\:\/\/[0-9a-zA-Z]([-.\w]*[0-9a-zA-Z])*(:(0-9)*)*(\/?)([a-zA-Z0-9\-\.\?\,\'\/\\\+&%\$#_]*)?/;