700字范文,内容丰富有趣,生活中的好帮手!
700字范文 > javascript 正则表达式触发函数进行高级替换【javascript】

javascript 正则表达式触发函数进行高级替换【javascript】

时间:2019-01-10 11:17:00

相关推荐

javascript 正则表达式触发函数进行高级替换【javascript】

web前端|js教程

正则表达式,高级替换

web前端-js教程

一般情况下我们可能会用到正则表达式去替换文本:

asp源码修改教程,vscode中快捷键设置,ubuntu键盘语言,查看tomcat日志规则,可爱爬虫图片,php 爬虫库,衡阳请seo人员做智能营销,好看的个人网站模板lzw

var a = "abc123aXc";

a.replace(/a.c/g, Z);

我们可以用函数来定义高级替换,而不是一个简单的字符串。比如:

征途 源码,ubuntu 编辑器,tomcat7.0的优点,网店运营爬虫,如何搭建php网站环境,什么叫seo关键词seo教程lzw

function reverseMatch(str) { return str.split(”).reverse().join(”); } var a = “www jb51 net”; a=a.replace(/\w+/g, reverseMatch); alert(a);

[/code]

执行结果为:

92kaifa全书网源码,vscode从零使用git,Ubuntu 国产平板,zip项目怎么tomcat,前端 能写爬虫,php修改上传图片,临沂seo排名效果如何,淘宝装修工具网站php源码,ai矢量模板lzw

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.replace(/&([^&;]+);/g, deentityify);

执行结果为:

如果我们知道了传递参数的规则就会很清楚其原理了。事实上,如果在正则表达式中定义了子匹配,那么参数的长度会随着子匹配的个数改变,如果没有定义子匹配,那么长度是固定的。传参的规则为:

匹配字符串本身

所有子匹配(如果定义了)

匹配字符串在原始字符串中的位置

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。