javascript 正则表达式触发函数进行高级替换
var a = "abc123aXc";
a.replace(/a.c/g, 'ZZ');
我们可以用函数来定义高级替换,而不是一个简单的字符串。比如:
function reverseMatch(str) {
return str.split('').reverse().join('');
}
var a = "www jb51 net";
a=a.replace(/\w+/g, reverseMatch);
alert(a);
[/code]
执行结果为:
www 15bj ten
[Ctrl+A 全选 注:如需引入外部Js需刷新才能执行]
我们看到,当正则表达式每产生一次匹配时,会触发替换函数并将匹配字符串作为参数传到替换函数中。当正则表达式中定义了子匹配(submatch)时,甚至可以做更高级的事情,替换函数可以根据不同的子匹配来作出相应的处理。比如我们要对网页中的某些指定的实体代码转化为特殊字符:
[code]
var entity = {
quot: '"',
lt: '<',
gt: '>'
};
function deentityify(a, b) {
var r = entity[b];
return typeof r === 'string' ? r : a;
}
var a = "<a href="http://jb51.net/">";
a.replace(/&([^&;]+);/g, deentityify);
执行结果为:
<a href="http://jb51.net/">
如果我们知道了传递参数的规则就会很清楚其原理了。事实上,如果在正则表达式中定义了子匹配,那么参数的长度会随着子匹配的个数改变,如果没有定义子匹配,那么长度是固定的。传参的规则为:
匹配字符串本身
所有子匹配(如果定义了)
匹配字符串在原始字符串中的位置
相关推荐
-
JavaScript正则表达式替换字符串中图片地址(img src)的方法
本文实例讲述了JavaScript正则表达式替换字符串中图片地址(img src)的方法.分享给大家供大家参考,具体如下: 今天开发中遇到一个问题:如何替换一段HTML字符串中包含的所有img标签的src值? 开始想到的解决方法是: content.replace(/<img [^>]*src=['"]([^'"]+)[^>]*>/gi, function (match) { console.log(match); }); 输出结果是: 复制代码 代码如下: &
-
js正则表达式replace替换变量方法
JavaScript正则实战(会根据最近写的不断更新) 1.javascript 正则对象替换创建 和用法: /pattern/flags 先简单案例学习认识下replace能干什么 正则表达式构造函数: new RegExp("pattern"[,"flags"]); 正则表达式替换变量函数:stringObj.replace(RegExp,replace Text); 参数说明: pattern -- 一个正则表达式文本 flags -- 如果存在,将是以下值:
-
JavaScript利用正则表达式替换字符串中的内容
话不多说,请看具体实现代码 //从字符串'Is this all there is'中剪去'is': var str='Is this all there is'; var subStr=new RegExp('is');//创建正则表达式对象 var result=str.replace(subStr,"");//把'is'替换为空字符串 console.log(result);//Is th all there is var subStr=new RegExp('is','i');
-
JS使用正则表达式实现关键字替换加粗功能示例
本文实例讲述了JS使用正则表达式实现关键字替换加粗功能的方法.分享给大家供大家参考,具体如下: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml">
-
Js&Vbs正则表达式替换重复的字符
如何过滤字符中相同的内容? 例如: str = "abcdaaaabbe" 过滤为: str = "abcde" str = 'abcdaaaabbe'; str = str.split('').sort().join('').replace(/(.)\1+/g, '$1'); alert(str); [Ctrl+A 全选 注:如需引入外部Js需刷新才能执行] 2. str = 'abcdaaaabbe'; str = str.replace(/(.)\1+/g,
-
JS使用replace()方法和正则表达式进行字符串的搜索与替换实例
1.JS字符串的替换及replace()方法的使用 replace(regexp,replacement)方法有两个参数,第一参数可以是一个纯文本字符串或是一个RegExp对象,具体请看RegExp对象的使用:第二个参数可是一个字符串也可以是一个函数. 以下是JS字符串替换的举例: 例1: 复制代码 代码如下: var str="Hello world!";document.write(str.replace(/world/, "phper")); 例2: 复制代码
-
javascript正则表达式使用replace()替换手机号的方法
本文实例讲述了javascript正则表达式使用replace()替换手机号的方法.分享给大家供大家参考. 具体实现方法如下: 复制代码 代码如下: <html> <head> <title>javascript正则表达式使用replace()替换手机号</title> <meta http-equiv="content-type" content="text/html;charset=utf-8" />
-
javascript用正则表达式把1234567890替换为abcdefghij
复制代码 代码如下: <script> alert('0123456789'.replace(/(\d)/g, function ($1){return "abcdefghij".split("")[$1];})); </script>
-
JS、replace利用正则表达式替换SQL所有参数为指定格式的数据
SQL参数格式 例如:select * from tb where nd=:nd and yd=:yd 想一次性把所有SQL语句中参数(带冒号)全部换成数据, 开始 选定用正则表达式. 原先写这样 复制代码 代码如下: strsql.replace(/(:\w+)/g,("$1").substring(1)); "$1" 总是本解析成字符串,而不是匹配的值 换成 复制代码 代码如下: strsql.replace(/(:\w+)/g,$1); 又不能给出匹配值,$1
-
js 替换功能函数,用正则表达式解决,js的全部替换
alert("abacacf".replace('a','9')); alert("abacacf".replace(/a/g,'9')); 第一个运行的结果 9bacaf 这个只是替换了第一个 第二个运行的结果 9b9c9f 这个能实现js的全部替换功能 其实第二个的意思就是用正则表达式实现全局的替换 g 代表 gobal 另附:带有特殊符号的全局替换 复制代码 代码如下: <!DOCTYPE HTML PUBLIC "-//W3C//DTD HT
-
JS使用正则表达式过滤多个词语并替换为相同长度星号的方法
本文实例讲述了JS使用正则表达式过滤多个词语并替换为相同长度星号的方法.分享给大家供大家参考,具体如下: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"
-
使用JS正则表达式 替换括号,尖括号等
如下所示: function toTxt(str) { var RexStr = /\<|\>|\"|\'|\&/g str = str.replace(RexStr, function(MatchStr) { switch (MatchStr) { case "<": return "<"; break; case ">": return ">"; break; case
随机推荐
- Angularjs中ng-repeat的简单实例
- jQuery 追加元素的方法如append、prepend、before
- python开发之for循环操作实例详解
- smarty中先strip_tags过滤html标签后truncate截取文章运用
- 教你用Type Hint提高Python程序开发效率
- C#使用DllImport调用非托管的代码的方法
- MySQL的表分区详解
- 从零学习node.js之搭建http服务器(二)
- 粗略分析Python中的内存泄漏
- 使用Chart.js图表库制作漂亮的响应式表单
- 浅谈js中StringBuffer类的实现方法及使用
- 在IIS7中应用Application Request Routing配置反向代理的图文教程
- jquery uploadify隐藏上传进度的实现方法
- 利用HTML5的画布Canvas实现刮刮卡效果
- Mac下使用charles遇到的问题以及解决办法
- windows server 2008 R2 管理员帐户克隆方法(图文)
- 用文本作数据处理
- jQuery中inArray方法注意事项分析
- linux 搭建svn服务器的方法步骤
- mysql-8.0.16 winx64的最新安装教程图文详解