本文摘自PHP中文网,作者青灯夜游,侵删。
在js中,可以使用str.replace()方法来替换字符串。replace()方法用于在字符串中用一些字符替换另一些字符,或替换一个与正则表达式匹配的子串;然后返回一个新的字符串。
replace() 方法用于在字符串中用一些字符替换另一些字符,或替换一个与正则表达式匹配的子串。
语法:
1 | stringObject.replace(regexp/ substr ,replacement)
|
返回值
一个新的字符串,是用 replacement 替换了 regexp 的第一次匹配或所有匹配之后得到的。
说明
字符串 stringObject 的 replace() 方法执行的是查找并替换的操作。它将在 stringObject 中查找与 regexp 相匹配的子字符串,然后用 replacement 来替换这些子串。如果 regexp 具有全局标志 g,那么 replace() 方法将替换所有匹配的子串。否则,它只替换第一个匹配子串。
replacement 可以是字符串,也可以是函数。如果它是字符串,那么每个匹配都将由字符串替换。但是 replacement 中的 $ 字符具有特定的含义。如下表所示,它说明从模式匹配得到的字符串将用于替换。
示例:使用 "hello" 替换字符串中的 "hi":
1 2 3 4 5 6 | <script type= "text/javascript" >
var str= "hi!" ;
console.log(str.replace(/hi/, "hello" ));
</script>
|
输出:
扩展知识replace的用法
1、replace基本用法
1 2 3 4 5 6 7 8 9 10 | <script type= "text/JavaScript" >
var str = "JavaScript is great script language!" ;
console.log(str.replace( "a" , "A" ));
console.log(str.replace(/a/, "A" ));
console.log(str.replace(/a/g, "A" ));
</script>
|
replace基本用法之替换移除指定class类
1 2 3 4 5 6 7 8 | <script type= "text/JavaScript" >
<div class =”confirm-btn unabled mb-10” id=”j_confirm_btn”>提交</div>
var classname = document.getElementById(“j_confirm_btn”).className;
var newClassName = classname.replace(/(^|\\s)unabled(\\s|$)/,””);
document.getElementById(“j_confirm_btn”).className = newClassName;
</script>
|
2、replace高级用法之 ---- $i
2.1、简单的$i用法
1 2 3 4 5 6 7 | <script>
var str = '"a", "b"' ;
console.log(str.replace(/ "[^" ]* "/g," - $1 -"));
</script>
|
2.2、$i与分组结合使用
1 2 3 4 5 6 7 8 | <script>
var str = "JavaScript is a good script language" ;
console.log(str.replace(/(JavaScript)\s*(is)/g, "$1 $2 fn.it $2" ));
</script>
|
2.3、$i与分组结合使用----关键字高亮显示
当我们使用谷歌搜索的时候我们会发现我们搜索的关键字都被高亮显示了,那么这种效果用JavaScript能否显示呢?答案是可以的,使用replace()很轻松就搞定了。
1 2 3 4 5 6 7 8 9 | <script>
var str = "Netscape在最初将其脚本语言命名为LiveScript,后来Netscape在与Sun合作之后将其改名为JavaScript。
JavaScript最初受Java启发而开始设计的,目的之一就是“看上去像Java”,因此语法上有类似之处,一些名称和命名规范也借自Java。
但JavaScript的主要设计原则源自Self和Scheme。";
document.write(str.replace(/(java)/gi, '<span style="color: red;font-weight: 800;">$1</span>' ));
</script>
|
2.4、反向分组----分组的反向引用
在正则中,当我们需要匹配两个或多个连续的相同的字符的时候,就需要用到反向引用了,查找连续重复的字符是反向引用最简单却也是最有用的应用之一。上面的”$i”也是反向分组的一种形式,这里再介绍另一种反向分组。
1 2 3 4 5 6 7 8 9 | <script type= "text/javascript" >
console.log(/ab(cd)\1e/.test( "abcde" ));
console.log(/ab(cd)\1e/.test( "abcdcde" ));
var str = "abbcccdeee" ;
var newStr = str.replace(/(\w)\1+/g, "$1" );
console.log(newStr);
</script>
|
3、replace高级用法之参数二为函数
replace函数的第二个参数不仅可以是一个字符,还可以是一个函数!
3.1、参数二为函数之参数详解
1 2 3 4 5 6 7 8 9 10 11 12 | <script>
var str = "bbabc" ;
var newStr = str.replace(/(a)(b)/g, function (){
console.log(arguments);
})
</script>
|
3.2、参数二为函数之首字母大写案例
1 2 3 4 5 6 7 8 9 10 | <script>
var str = "Tomorrow may not be better, but better tomorrow will surely come!" ;
var newStr = str.replace(/\b\w+\b/gi, function (matchStr){
console.log(matchStr);
return matchStr. substr (0,1).toUpperCase() + matchStr. substr (1);
});
console.log(newStr);
</script>
|
3.3、参数二为函数之绑定数据----artTemplate模板核心
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 | <h1>周星驰喜剧电影:</h1>
<div id= "content" ></div>
<script type= "text/javascript" >
var data = {
name: "功夫" ,
protagonist: "周星驰"
},
domStr = '<div><span>名称:</span><span>{{name}}</span></div><div><span>导演:</span><span>{{protagonist}}</span> </div>' ;
document.getElementById( "content" ).innerhtml = formatString(domStr,data);
function formatString(str,data){
return str.replace(/{{(\w+)}}/g, function (matchingStr,group1){
return data[group1];
});
}
</script>
|
4、replace高级用法之获取与正则表达式匹配的文本
4.1、replace高级用法之获取与正则表达式进行匹配的源字符串
1 2 3 4 5 6 | <script>
var str = "i am a good man" ;
var newStr = str.replace(/good/g, "$&" );
console.log(newStr);
</script>
|
4.2、replace高级用法之获取正则表达式匹配到的字符
1 2 3 4 5 6 7 8 | <script>
var str = "i am a good man" ;
var newStr = str.replace(/good/g, "$&-$&" );
console.log(newStr);
</script>
|
5、replace高级用法之获取正则匹配的左边的字符
1 2 3 4 5 6 7 | <script>
var str = "javascript is a good script" ;
var newStr = str.replace(/script/, "-$`" );
console.log(newStr)
</script>
|
6、replace高级用法之获取正则匹配的右边的字符
1 2 3 4 5 6 7 8 9 | <script>
var str = "javascript is a good script" ;
var newStr = str.replace(/script/, " is a good language!it$'" );
console.log(newStr)
</script>
|
推荐教程:《JavaScript视频教程》
以上就是js怎么替换字符串?的详细内容,更多文章请关注木庄网络博客!
相关阅读 >>
javascript和css的区别是什么
javascript电池状态信息api之promises
解决javascript中数组排序sort不发生改变
javascript是什么技术
javascript中var、let和const之间有什么区别?
你必须知道的10个chrome开发工具和技巧
javascript怎么求长度
javascript怎么设置滚动条高度
js怎么删除数组中指定元素?
记录javascript的学习笔记
更多相关阅读请进入《javascript》频道 >>
人民邮电出版社
本书对 Vue.js 3 技术细节的分析非常可靠,对于需要深入理解 Vue.js 3 的用户会有很大的帮助。——尤雨溪,Vue.js作者
转载请注明出处:木庄网络博客 » js怎么替换字符串?