[b]非捕获性分组,在左括号后面添加'?:',从而不保存反向引用(原因可能是匹配的内容对我们不重要)提高效率。[/b]
[b]正则表达式的常见应用[/b]
var str = '#123456789';
var reg = /#(?:\d+)/;
alert(reg.test(str));//true
var result = str.replace(reg,"abc$1");//'abc$1'
alert(RegExp.$1);//''空
//常见用途,去除HTML标签:
String.prototype.stripeHTML = function(){
var reg = /<(?:.|\s)*?>/g;
return this.replace(reg,"");
}
var str = '<p>a simple html content</p>';
alert(str.stripeHTML());//'a simple html content'
[b]正则表达式的常见应用[/b]
//和谐字符串:
var regBadWord = /badword1|badword2|anotherOne/gi;
var sUserInput = 'This is a string using badword1 and badword2.';
//将敏感字符全部替换为一个*号:
var hamonyInput = sUserInput.replace(regBadWord,'*');
//逐个字符替换为*号
var hamonyInput = sUserInput.replace(regBadWord,function(matchStr){
return matchStr.replace(/./g,'*');
});
//字符串内部倒置:
var str = '1234 5678';
var reg = /(\d{4}) (\d{4})/;
var result = str.replace(reg,"$2 $1"); //'5678 1234'
alert(RegExp.$1); //1234