javascript的replace方法结合正则使用实例总结


Posted in Javascript onJune 16, 2016

本文实例总结了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 闭包疑问
Dec 30 Javascript
JavaScript动态创建link标签到head里的方法
Dec 22 Javascript
解决node-webkit 不支持html5播放mp4视频的方法
Mar 11 Javascript
javascript中Date()函数在各浏览器中的显示效果
Jun 18 Javascript
开启BootStrap学习之旅
May 04 Javascript
JS中parseInt()和map()用法分析
Dec 16 Javascript
jQuery.cookie.js使用方法及相关参数解释
Mar 06 Javascript
jQuery Tree Multiselect使用详解
May 02 jQuery
JavaScript中防止微信浏览器被整体拖动的方法
Aug 25 Javascript
jQuery操作attr、prop、val()/text()/html()、class属性
May 23 jQuery
用javascript制作qq注册动态页面
Apr 14 Javascript
JavaScript中document.activeELement焦点元素介绍
Nov 27 Javascript
jQuery插件实现文件上传功能(支持拖拽)
Aug 27 #Javascript
jQuery插件实现图片轮播特效
Jun 16 #Javascript
javascript正则表达式之分组概念与用法实例
Jun 16 #Javascript
js学习阶段总结(必看篇)
Jun 16 #Javascript
原生js封装二级城市下拉列表的实现代码
Jun 16 #Javascript
jQuery获取剪贴板内容的方法
Jun 16 #Javascript
javascript作用域、作用域链(菜鸟必看)
Jun 16 #Javascript
You might like
德生PL990的分析评价
2021/03/02 无线电
PHP 面向对象 final类与final方法
2010/05/05 PHP
PHP递归算法的详细示例分析
2013/02/19 PHP
深入php define()函数以及defined()函数的用法详解
2013/06/05 PHP
PHP设计模式之迭代器模式的深入解析
2013/06/13 PHP
Destoon模板制作简明教程
2014/06/20 PHP
TP5框架安全机制实例分析
2020/04/05 PHP
javascript下给元素添加事件的方法与代码
2007/08/13 Javascript
只需20行代码就可以写出CSS覆盖率测试脚本
2013/04/24 Javascript
Js判断参数(String,Array,Object)是否为undefined或者值为空
2013/11/04 Javascript
Jquery实现兼容各大浏览器的Enter回车切换输入焦点的方法
2014/09/01 Javascript
Jquery Ajax Error 调试错误的技巧
2015/11/20 Javascript
JS基于MSClass和setInterval实现ajax定时采集信息并滚动显示的方法
2016/04/18 Javascript
jQuery实现页面倒计时并刷新效果
2017/03/13 Javascript
bootstrap模态框弹出和隐藏,动态改变中间内容的实例
2018/08/10 Javascript
Bootstrap Table列宽拖动的方法
2018/08/15 Javascript
基于JavaScript判断两个对象内容是否相等
2020/01/10 Javascript
jquery添加div实现消息聊天框
2020/02/08 jQuery
如何用Python合并lmdb文件
2018/07/02 Python
Python版名片管理系统
2018/11/30 Python
python字符串分割及字符串的一些常规方法
2019/07/24 Python
Macbook安装Python最新版本、GUI开发环境、图像处理、视频处理环境详解
2020/02/17 Python
Python导入模块包原理及相关注意事项
2020/03/25 Python
django 模型字段设置默认值代码
2020/07/15 Python
Django-Scrapy生成后端json接口的方法示例
2020/10/06 Python
利用pipenv和pyenv管理多个相互独立的Python虚拟开发环境
2020/11/01 Python
selenium框架中driver.close()和driver.quit()关闭浏览器
2020/12/08 Python
Godiva巧克力英国官网:比利时歌帝梵巧克力
2018/08/28 全球购物
作风建设年度心得体会
2014/10/29 职场文书
总经理年会致辞
2015/07/29 职场文书
2016年世界人口日宣传活动总结
2016/04/05 职场文书
python实现批量移动文件
2021/04/05 Python
使用PDF.js渲染canvas实现预览pdf的效果示例
2021/04/17 Javascript
python自动化八大定位元素讲解
2021/07/09 Python
mysql insert 存在即不插入语法说明
2022/03/25 MySQL
volatile保证可见性及重排序方法
2022/08/05 Java/Android