js中replace的应用
一: 准备知识:
1.定义:replace() 方法用于在字符串中用一些字符替换另一些字符,或替换一个与正则表达式匹配的子串。
2.语法:
stringObject.replace(regexp/substr,replacement)
3.说明:
1)第一个参数可以是 正则 / 字符串
tips: 如果该值是一个字符串,则将它作为要检索的直接量文本模式,而不是首先被转换为 RegExp 对象。
2)第二个参数可以是 字符串 / 函数
tips: 函数的时候,每个匹配都调用该函数,它返回的字符串将作为替换文本使用。
该函数的
第一个参数是 匹配模式的字符串。
第二个参数是 与模式中的子表达式匹配的字符串,可以有 0 个或多个这样的参数。
第三个参数是一个整数,声明了匹配在 stringObject 中出现的位置。
第四个参数是 stringObject 本身
4. 正则相关知识
1)正则对象语法
直接量语法
/pattern/attributes
正则对象语法
new RegExp(pattern, attributes);
// 第一个参数:一个 字符串 或者 正则表达式
// 第二个参数:[可选] 包含属性"g","i","m";
// 需要注意的是 要是 第一个参数是 字符串的话 m 必须省略
2)说明:
i: 执行对大小不敏感的匹配
g: 执行全局匹配( 查找所有的匹配而不是在找到第一个匹配后停止 );
m: 执行多行匹配
其他正则请点击:
二. 示例:
1.全局替换111为aaa
var str = '111bbb'; str = str.replace( /111/g, 'aaa' ); alert(str);
2.找到 "(数字@三位数字)" 的格式,替换成a标签 里面包含三位数字
html:
<ul id="ul1"> <li>(1@001)我爱</li> <li>(2@002)北京</li> <li>(3@003)</li> </ul>
js:
$.each( $('li'), function(i, item){ var newHtml = $(this).html(); newHtml = newHtml.replace(/\(\d\@(\d{3})\)/, function ($0, $1) { return '<a href="#">'+ $1 +'</a>'; }); $(this).html( newHtml ); });