如果匹配的字符串长度大于指定的限制,则使用Javascript正则表达式替换

时间:2012-01-04 09:07:35

标签: javascript jquery

我正在使用javascript正则表达式为所有找到的网址添加html标记:

 var exp = /(((|www\.|(http|https|ftp|news|file)+\:\/\/)[&#95;.a-z0-9-]+\.[a-z0-9\/&#95;:@=.+?,##%&~-]*[^.|\'|\# |!|\(|?|,| |>|<|;|\)]))/ig;

popupText =  popupText.replace(exp , "<font color='red'>"+"<b>$&</b>"+"</font>" ); 

现在问题是我想确保如果找到的网址长度大于20个字符,它会发出短信

请参阅 $&amp; 获取匹配字符串,我需要添加过滤器/检查以获取其长度。

感谢任何帮助

1 个答案:

答案 0 :(得分:1)

使用替换的功能形式:

  popupText =  popupText.replace(exp , function(match) {
       if (match.length > 20)
            return "<font color='red'>"+"<b>" + match etc
       else
            return match; // return the argument, that is, don't replace
  })