[原]AS3 js正则表达式 反向引用(backreference)

2010年05月15日 星期六 02:31


搬离写了5年的渣度空间,准备把技术性的文章定在CSDN了↖(^ω^)↗。这些都是文章备份。勿怪。。


as3代码:


 
var str = "9976543321";

var reg = /(\d{1}) \1/gx; 

// \1 即为反向分组,代表前一个分组相同的匹配结果字符。如\d{1} 匹配了9,那么\1也只能为匹配9,

var first=str.match(reg); 

//match(),返回一个对象,如果reg有全局属性g,对象的数字索引为各完全匹配字符,

//如果无全局属性g,0索引为第一次完全匹配字符,其他索引依次为各分组匹配字符 

for(var key in first)
{
trace("第一次属性名:"+key +",值:"+ first[key])
}

/*
输出
第一次属性名:0,值:99
第一次属性名:1,值:33

*/ 

----------------------------------------------
js代码
 
<script language="javascript">

var str = "9976543321";

var reg = /(\d{1}) \1/gx; 

// \1 即为反向分组,代表前一个分组相同的匹配结果字符。如\d{1} 匹配了9,那么\1也只能为匹配9,

var first=str.match(reg); 

//match(),返回一个对象,如果reg有全局属性g,对象的数字索引为各完全匹配字符,

//如果无全局属性g,0索引为第一次完全匹配字符,其他索引依次为各分组匹配字符 

for(var key in first)
{
document.write("第一次属性名:"+key +",值:"+ first[key])
}
</script>
<!--
输出
第一次属性名:0,值:99
第一次属性名:1,值:33
-->


更复杂一些的反向引用:
下面是一个简单的关键字搜索高亮显示的正则表达用法。。

AS3--------------------------------------------------------------


 
var str = "9976543321";

var reg = /(\d{1}) \1/gx;

var first=str.replace(reg,"<font color=red>$1$2</font>");
//输出 <font color=red>9$2</font>7654<font color=red>3$2</font>21。

//replace()作用是把匹配字符串替换成相应字段。

//注意$1反向代表reg第一个括号内的分组\d{1},而$2直接被显示了,表示正则表达式只认括号为分组,不把/1识别为第二个分组 

trace (first);

JS-------------------------------
 
<script language="javascript">
var str = "9976543321";

var reg = /(\d{1}) \1/gx;

var first=str.replace(reg,"<font color=red>$1$2</font>");
//输出 <font color=red>9$2</font>7654<font color=red>3$2</font>21。

//replace()作用是把匹配字符串替换成相应字段。

//注意$1反向代表reg第一个括号内的分组\d{1},而$2直接被显示了,表示正则表达式只认括号为分组,不把/1识别为第二个分组

document.write(first);

</script>

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值