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正则表达式使用replace()替换手机号的方法
本文实例讲述了javascript正则表达式使用replace()替换手机号的方法.分享给大家供大家参考. 具体实现方法如下: 复制代码 代码如下: <html> <head> <title>javascript正则表达式使用replace()替换手机号</title> <meta http-equiv="content-type" content="text/html;charset=utf-8" />
-
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使用正则表达式实现关键字替换加粗功能示例
本文实例讲述了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
-
JS使用replace()方法和正则表达式进行字符串的搜索与替换实例
1.JS字符串的替换及replace()方法的使用 replace(regexp,replacement)方法有两个参数,第一参数可以是一个纯文本字符串或是一个RegExp对象,具体请看RegExp对象的使用:第二个参数可是一个字符串也可以是一个函数. 以下是JS字符串替换的举例: 例1: 复制代码 代码如下: var str="Hello world!";document.write(str.replace(/world/, "phper")); 例2: 复制代码
-
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正则表达式replace替换变量方法
JavaScript正则实战(会根据最近写的不断更新) 1.javascript 正则对象替换创建 和用法: /pattern/flags 先简单案例学习认识下replace能干什么 正则表达式构造函数: new RegExp("pattern"[,"flags"]); 正则表达式替换变量函数:stringObj.replace(RegExp,replace Text); 参数说明: pattern -- 一个正则表达式文本 flags -- 如果存在,将是以下值:
-
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
-
JavaScript正则表达式替换字符串中图片地址(img src)的方法
本文实例讲述了JavaScript正则表达式替换字符串中图片地址(img src)的方法.分享给大家供大家参考,具体如下: 今天开发中遇到一个问题:如何替换一段HTML字符串中包含的所有img标签的src值? 开始想到的解决方法是: content.replace(/<img [^>]*src=['"]([^'"]+)[^>]*>/gi, function (match) { console.log(match); }); 输出结果是: 复制代码 代码如下: &
-
js 替换功能函数,用正则表达式解决,js的全部替换
alert("abacacf".replace('a','9')); alert("abacacf".replace(/a/g,'9')); 第一个运行的结果 9bacaf 这个只是替换了第一个 第二个运行的结果 9b9c9f 这个能实现js的全部替换功能 其实第二个的意思就是用正则表达式实现全局的替换 g 代表 gobal 另附:带有特殊符号的全局替换 复制代码 代码如下: <!DOCTYPE HTML PUBLIC "-//W3C//DTD HT
-
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');
随机推荐
- 移动端利用H5实现压缩图片上传功能
- JS实现的页面自定义滚动条效果
- Python实现简单多线程任务队列
- PHP 面向对象程序设计(oop)学习笔记 (五) - PHP 命名空间
- PHP面向对象精要总结
- C#采用OpenXml给Word文档添加表格
- C#连接加密的Sqlite数据库的方法
- 如何遍历对象的属性?
- shell判断文件,目录是否存在或者具有权限的代码
- PHP:微信小程序 微信支付服务端集成实例详解及源码下载
- CentOS 5.4 服务器配置 yum安装Apache+php+Mysql
- Spring MVC 学习 之 - URL参数传递详解
- 关闭页面window.location事件未执行的原因及解决方法
- 全面兼容的javascript时间格式化函数(比较实用)
- document对象execCommand的command参数介绍
- iscroll碰到Select无法选择下拉刷新的解决办法
- win2003 iis6 iis假死
- php使用simplexml_load_file加载XML文件并显示XML的方法
- 详解Xcode编译选项功能
- React Component存在的几种形式详解