本文实例总结了javascript的replace方法结合正则使用方法。分享给大家供大家参考,具体如下:
replace()方法用于在字符串中用一些字符替换另一些字符,或者替换一个正则表达式匹配的字符串
例子一:直接使用repalce替换
rush:js;">
var stringObj="终古人民共和国,终古人民";
//替换错别字“终古”为“中国”
//并返回替换后的新字符
//原字符串stringObj的值没有改变
var newstr=stringObj.replace("终古","中国");
//中国人民共和国,终古人民
alert(newstr);
例子二:使用正则表达式,全部替换
rush:js;">
var str="终古人民共和国,终古人民";
var newstr=str.replace(/(终古)/g,"中国");
//中国人民共和国,中国人民
alert(newstr);
等价于
rush:js;">
var reg=new RegExp("终古","g"); //创建正则RegExp对象
var stringObj="终古人民共和国,终古人民";
var newstr=stringObj.replace(reg,"中国");
alert(newstr);
例子三:正则表达式,变量匹配
rush:js;">
var resource="终古";
var target="中国";
var reg=new RegExp(resource,target);
alert(newstr);
例子四:正则分组匹配
rush:js;">
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"));
例子五:使用回调函数做详细处理
rush:js;">
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);
例子六:比较生僻的写法
rush:js;">
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);
rush:js;">
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());
rush:js;">
name = "Doe,John";
//更改两个单词之间的顺序
var temp = name.replace(/(\w+)\s*,\s*(\w+)/,"$2 $1");
alert(temp);
rush:js;">
function SDReplaceData(objStr)
{
return objStr.replace( /(\&|\')/g,function($0,$1)
{
return{
"&" : "&","'" : "'"
}[$1];
}
);
}
PS:这里再为大家提供2款非常方便的正则表达式工具供大家参考使用:
JavaScript正则表达式在线测试工具:
正则表达式在线生成工具:
》希望本文所述对大家JavaScript程序设计有所帮助。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。