在JavaScript中添加到str.match()的额外字符

Extra characters added to str.match() in JavaScript

本文关键字:字符 match JavaScript 添加 str      更新时间:2023-09-26

执行…时

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,,,,

到url 的末尾

我能做些什么来解决这个问题?

查看.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'-'.'?','''/'''+&%'$#_]*)?/;