本文实例总结了javascript的replace方法结合正则使用方法。分享给大家供大家参考,具体如下:
replace()方法用于在字符串中用一些字符替换另一些字符,或者替换一个正则表达式匹配的字符串
例子一:直接使用repalce替换
var stringObj=\"终古人民共和国,终古人民\"; //替换错别字“终古”为“中国” //并返回替换后的新字符 //原字符串stringObj的值没有改变 var newstr=stringObj.replace(\"终古\",\"中国\"); //中国人民共和国,终古人民 alert(newstr);
例子二:使用正则表达式,全部替换
var str=\"终古人民共和国,终古人民\"; var newstr=str.replace(/(终古)/g,\"中国\"); //中国人民共和国,中国人民 alert(newstr);
等价于
var reg=new RegExp(\"终古\",\"g\"); //创建正则RegExp对象 var stringObj=\"终古人民共和国,终古人民\"; var newstr=stringObj.replace(reg,\"中国\"); alert(newstr);
例子三:正则表达式,变量匹配
var resource=\"终古\"; var target=\"中国\"; var reg=new RegExp(resource,\"g\"); //创建正则RegExp对象 var stringObj=\"终古人民共和国,终古人民\"; var newstr=stringObj.replace(reg,target); alert(newstr);
例子四:正则分组匹配
var strM = \"javascript is a good script language\"; //$1匹配的是javascript,$2匹配的是is //最终返回的值是\"javascript is fun. it is\" + strM //即javascript is 被替换为 javascript is fun. it is alert(strM.replace(/(javascript)\\s*(is)/g,\"$1 $2 fun. it $2\"));
例子五:使用回调函数做详细处理
var name=\"aaa bbb ccc\";
//name字符串去匹配/\\b\\w+\\b/g表达式,结果有三个——aaa,bbb,ccc;每个结果执行function里面的方法
var uw = name.replace(/\\b\\w+\\b/g,function(word){
//word是匹配的字符串
alert(word);
return word.substring(0,1).toUpperCase()+word.substring(1);
});
alert(uw);
例子六:比较生僻的写法
var reg=new RegExp(\"(http://www.qidian.com/BookReader/)(\\\\d+),(\\\\d+).aspx\",\"gmi\");
var url=\"http://www.qidian.com/BookReader/1017141,20361055.aspx\";
//方式一,最简单常用的方式
var rep=url.replace(reg,\"$1ShowBook.aspx?bookId=$2&chapterId=$3\");
alert(rep);
//方式二 ,采用固定参数的回调函数
var rep2=url.replace(reg,function(m,p1,p2,p3){
return p1+\"ShowBook.aspx?bookId=\"+p3+\"&chapterId=\"+p3
});
alert(rep2);
//方式三,采用非固定参数的回调函数
var rep3=url.replace(reg,function(){
var args=arguments;
return args[1]+\"ShowBook.aspx?bookId=\"+args[2]+\"&chapterId=\"+args[3];
});
alert(rep3);
function ReplaceDemo(){
var r, re; // 声明变量。
var ss = \"The rain in Spain falls mainly in the plain.\";
// \\s表示的是空格,则\\S表示的是非空格,因此/(\\S+)(\\s+)(\\S+)/g匹配的是“非空格空格非空格”的结果
//匹配的结果有The rain、in Spain、falls mainly、in the
//替换后的结果有rain The、Spain in、mainly falls、the in
re = /(\\S+)(\\s+)(\\S+)/g; // 创建正则表达式模式。
//更改匹配结果之间的顺序
r = ss.replace(re, \"$3$2$1\"); // 交换每一对单词。
return(r); // 返回结果字符串。
}
alert(ReplaceDemo());
name = \"Doe, John\"; //更改两个单词之间的顺序 var temp = name.replace(/(\\w+)\\s*, \\s*(\\w+)/, \"$2 $1\"); alert(temp);
function SDReplaceData(objStr)
{
return objStr.replace( /(\\&|\\\')/g,
function($0, $1)
{
return{
\"&\" : \"&\"
, \"\'\" : \"\'\"
}[$1];
}
);
}
更多关于JavaScript相关内容感兴趣的读者可查看本站专题:《JavaScript切换特效与技巧总结》、《JavaScript查找算法技巧总结》、《JavaScript动画特效与技巧汇总》、《JavaScript错误与调试技巧总结》、《JavaScript数据结构与算法技巧总结》、《JavaScript遍历算法与技巧总结》及《JavaScript数学运算用法总结》
希望本文所述对大家JavaScript程序设计有所帮助。
本文地址:https://www.stayed.cn/item/12413
转载请注明出处。
本站部分内容来源于网络,如侵犯到您的权益,请 联系我