当做一个...
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));
它会正确匹配一个 URL,然后追加
,ht,,m,,,,
到网址的末尾
我能做些什么来解决这个问题?
当做一个...
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));
它会正确匹配一个 URL,然后追加
,ht,,m,,,,
到网址的末尾
我能做些什么来解决这个问题?
查看返回的内容:由 match 和匹配的捕获组.match
组成的数组。
利用
var result = str.match(URLPattern);
alert(result != null ? result[0] : "nothing found");
顺便说一句,您的正则表达式构造不正确。使用正则表达式文字而不是吃反斜杠的字符串文字:
var URLPattern = /^(ht|f)tp(s?)\:\/\/[0-9a-zA-Z]([-.\w]*[0-9a-zA-Z])*(:(0-9)*)*(\/?)([a-zA-Z0-9\-\.\?\,\'\/\\\+&%\$#_]*)?/;