/**反向引用
var sToMatch = "abbbaabbbaaabbb"
var re1 = /(.*bbb)/g;
var re2 = /(.*?bbb)/g;
re1.test(sToMatch);
alert(RegExp.$1)
var aMatch = sToMatch.match(re2);
for ( var k = 0; k < aMatch.length; k++)
{
alert(aMatch[k])
};*/
/**去除字符串两边的空白符号,注意分组函数中是懒惰型匹配
String.prototype.trim = function(){
var reTrim = /^\s*(.*?)\s+$/;
return this.replace(reTrim,"$1");
}
var abc = " abc ";
*/
/**前瞻:有时候希望,当某个特定的字符分组出现在另一个字符串之前时候,才去捕获它,就要使用前瞻。
正向前瞻:/(bed(?=room))/;
负向前瞻:/(bed(?!room))/;
var sBed1 = "bedroom";
var sBed2 = "bedding";
var reBed = /(bed(?=room))/;
alert(reBed.test(sBed2));//false
alert(reBed.test(sBed1));//true
alert(RegExp.$1);//bed
**/
/**
非捕获分组
在左括号后面紧接着一个问号和冒号
(?:);
不会创建反向引用,在较长的正则表达式中可以降低匹配速度。
例子为去除HTML标签
String.prototype.stripHTML = function(){
var reTag = /<(?:.|\s)*?>/g;
}
**/
javascript分组 学习笔记
最新推荐文章于 2024-11-02 17:29:48 发布