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 相关文章推荐
web的各种前端打印方法之jquery打印插件PrintArea实现网页打印
Jan 09 Javascript
jquery.boxy弹出框(后隔N秒后自动隐藏/自动跳转)
Jan 15 Javascript
THREE.JS入门教程(2)着色器-上
Jan 24 Javascript
jquery中map函数与each函数的区别实例介绍
Jun 23 Javascript
ECMAScript6中Map/WeakMap详解
Jun 12 Javascript
JQuery通过AJAX从后台获取信息显示在表格上并支持行选中
Sep 15 Javascript
JavaScript数据结构学习之数组、栈与队列
May 02 Javascript
angular实现图片懒加载实例代码
Jun 08 Javascript
使用JavaScript实现表格编辑器(实例讲解)
Aug 02 Javascript
JS中call和apply函数用法实例分析
Jun 20 Javascript
Antd下拉选择,自动匹配功能的实现
Oct 24 Javascript
动态规划之使用备忘录来改进Javascript函数
Apr 07 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
PHP UTF8编码内的繁简转换类
2009/07/20 PHP
php自动加载的两种实现方法
2010/06/21 PHP
php array的学习笔记
2012/05/10 PHP
thinkphp学习笔记之多表查询
2014/07/28 PHP
PHP用mb_string函数库处理与windows相关中文字符及Win环境下开启PHP Mb_String方法
2015/11/11 PHP
100多行PHP代码实现socks5代理服务器[2]
2016/05/05 PHP
js 事件小结 表格区别
2007/08/13 Javascript
js自定义事件代码说明
2011/01/31 Javascript
js冒泡法和数组转换成字符串示例代码
2013/08/14 Javascript
javascript自定义的addClass()方法
2014/05/28 Javascript
触屏中的JavaScript事件分析
2015/02/06 Javascript
浅析BootStrap模态框的使用(经典)
2016/04/29 Javascript
基于JavaScript实现窗口拖动效果
2017/01/18 Javascript
vue如何引用其他组件(css和js)
2017/04/13 Javascript
React Native仿美团下拉菜单的实例代码
2017/08/08 Javascript
Express之托管静态文件的方法
2018/06/01 Javascript
微信小程序开发之改变data中数组或对象的某一属性值
2018/07/05 Javascript
JS数组进阶示例【数组的几种函数用法】
2020/01/16 Javascript
Vue-cli3生成的Vue项目加载Mxgraph方法示例
2020/05/31 Javascript
vue组件中节流函数的失效的原因和解决方法
2020/12/02 Vue.js
[10:07]2014DOTA2国际邀请赛 实拍选手现场观战DK对阵Titan
2014/07/12 DOTA
python爬虫selenium和phantomJs使用方法解析
2019/08/08 Python
CSS3的calc()做响应模式布局的实现方法
2017/09/06 HTML / CSS
国外平面设计第一市场:99designs
2016/10/25 全球购物
比利时的在线灯具店:Lampen24.be
2019/07/01 全球购物
如何实现jdbc性能优化
2012/07/30 面试题
临床医学专业个人的自我评价
2013/09/27 职场文书
优秀老师事迹材料
2014/02/05 职场文书
党校学习自我鉴定
2014/02/24 职场文书
初中家长寄语
2014/04/02 职场文书
管理提升方案
2014/06/04 职场文书
电子商务实训报告总结
2014/11/05 职场文书
先进学校事迹材料
2014/12/30 职场文书
事业单位年度考核评语
2014/12/31 职场文书
音乐教师求职信范文
2015/03/20 职场文书
留学文书中的个人陈述,应该注意哪些问题?
2019/08/23 职场文书