使用正则表达式Javascript计算字符串的大小

时间:2012-03-26 16:17:05

标签: javascript regex

我在使用正则表达式获取URL的大小时遇到​​了麻烦。我可以打印“exp”内容但是当我尝试发出exp.length警告时它会失败:

var pattern = /(\b(https?|ftp|file):\/\/[-A-Z0-9+&@#\/%?=~_|!:,.;]*[-A-Z0-9+&@#\/%=~_|])/ig;            
var exp = text.match(pattern);

alert(exp.length);

有什么想法吗? 感谢。

2 个答案:

答案 0 :(得分:0)

string.match返回一个数组,而不是一个字符串,你可能会尝试这样做:

var pattern = /(\b(https?|ftp|file):\/\/[-A-Z0-9+&@#\/%?=~_|!:,.;]*[-A-Z0-9+&@#\/%=~_|])/ig;            
var exp = text.match(pattern);

alert(exp.join('').length); // alert a string, not an array

答案 1 :(得分:0)

如果,你要做的是获得正则表达式匹配结果的长度,你会这样做:

var pattern = /(\b(https?|ftp|file):\/\/[-A-Z0-9+&@#\/%?=~_|!:,.;]*[-A-Z0-9+&@#\/%=~_|])/ig;            
var exp = text.match(pattern);
if (exp) {
    alert(exp[0].length);
}

.match()返回null(如果未找到匹配项)或数组。在该数组中,exp [0]将是找到的整个匹配。数组中的后续索引包含您匹配的任何子表达式(在匹配字符串中用括号表示)。