正则表达式替换变量
2010-11-03 12:52
239 查看
有一个数组:
var _A = ['A','B','C','D'];
有一个有“变量”的字符串。
var _B = '<ul><li>$0$</li><li>$1$</li><li>$2$</li><li>$3$</li></ul>';
说是变量,其实只是字符串中的特殊字符,例如$0$,就称这个为伪变量吧。
最后的要求就是使用正则获得下面这样一个字符串:
_C = '<ul><li>A</li><li>B</li><li>C</li><li>D</li></ul>';
IamUE给出了代码:
代码分析:看到代码之后感觉有点晕,首先,正则reg中没有任何的括号,应该是没有捕获内容的,那么后面怎么又使用$1了引用了呢?通过alert测试,发现它是整个正则匹配的内容,而且不一定要写作$1,可以写为$0,甚至是写为x都没关系,它总是整个匹配。
第一次,$1匹配到_B中的“$0$”,匿名函数中将它的$去掉,变成了0,检查是否越界之后,用这个0作为下标去访问数组_A。
由于正则reg定义了g属性,所以会继续替换$1$、$2$等等。步骤都和上面一样。本文出自 “小鬼家家” 博客,请务必保留此出处http://ming358721.blog.51cto.com/2306530/414500
var _A = ['A','B','C','D'];
有一个有“变量”的字符串。
var _B = '<ul><li>$0$</li><li>$1$</li><li>$2$</li><li>$3$</li></ul>';
说是变量,其实只是字符串中的特殊字符,例如$0$,就称这个为伪变量吧。
最后的要求就是使用正则获得下面这样一个字符串:
_C = '<ul><li>A</li><li>B</li><li>C</li><li>D</li></ul>';
IamUE给出了代码:
<script type="text/javascript"> var _A = ['A','B','C','D']; var _B = '<ul><li>$0$</li><li>$1$</li><li>$2$</li><li>$3$</li></ul>'; var reg=/\$\d+\$/ig; C=_B.replace(reg,function($1){ var indexnum=$1.replace(/\$/ig,""); if (indexnum<_A.length) {return _A[indexnum];} else{return ""} }); alert(C); </script>
代码分析:看到代码之后感觉有点晕,首先,正则reg中没有任何的括号,应该是没有捕获内容的,那么后面怎么又使用$1了引用了呢?通过alert测试,发现它是整个正则匹配的内容,而且不一定要写作$1,可以写为$0,甚至是写为x都没关系,它总是整个匹配。
第一次,$1匹配到_B中的“$0$”,匿名函数中将它的$去掉,变成了0,检查是否越界之后,用这个0作为下标去访问数组_A。
由于正则reg定义了g属性,所以会继续替换$1$、$2$等等。步骤都和上面一样。本文出自 “小鬼家家” 博客,请务必保留此出处http://ming358721.blog.51cto.com/2306530/414500
相关文章推荐
- js正则表达式/replace替换变量方法
- [转载]js正则表达式/replace替换变量方法
- 使用正则表达式模板变量替换
- PostgreSQL 正则表达式替换-使用变量
- 【JavaScript】正则表达式--String.replace()变量替换的一点笔记
- JS字符串替换函数全部替换方法 JS 正则表达式如何使用变量
- JS字符串替换函数全部替换方法 JS 正则表达式如何使用变量
- java正则表达式替换字符串
- 利用正则表达式替换多行代码
- 正则表达式-2(字符串切割)+(字符串按正则表达式替换)
- Eclipse中使用正则表达式替换的一点记录(使用正则表达式的分组)
- ereg_replace -- 替换正则表达式
- java正则表达式中replace和replaceall替换换行符的小问题
- js 正则表达式替换空格
- 去掉代码中的空行和注释行,可以使用以下正则表达式替换。
- iphone开发使用得替换方法及正则表达式替换
- MySQL中使用replace、regexp进行正则表达式替换的用法分析
- 用正则表达式完成简单公式的替换计算
- javascript正则表达式中使用变量关键字
- Aptana与Editplus中查找并替换的正则表达式应用