最新文章专题视频专题问答1问答10问答100问答1000问答2000关键字专题1关键字专题50关键字专题500关键字专题1500TAG最新视频文章推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37视频文章20视频文章30视频文章40视频文章50视频文章60 视频文章70视频文章80视频文章90视频文章100视频文章120视频文章140 视频2关键字专题关键字专题tag2tag3文章专题文章专题2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章专题3
当前位置: 首页 - 科技 - 知识百科 - 正文

javascript正则表达式触发函数进行高级替换_javascript技巧

来源:动视网 责编:小采 时间:2020-11-27 20:47:52
文档

javascript正则表达式触发函数进行高级替换_javascript技巧

javascript正则表达式触发函数进行高级替换_javascript技巧:一般情况下我们可能会用到正则表达式去替换文本: 代码如下: var a = abc123aXc; a.replace(/a.c/g, 'ZZ'); 我们可以用函数来定义高级替换,而不是一个简单的字符串。比如: function reverseMatch(str) { return str.
推荐度:
导读javascript正则表达式触发函数进行高级替换_javascript技巧:一般情况下我们可能会用到正则表达式去替换文本: 代码如下: var a = abc123aXc; a.replace(/a.c/g, 'ZZ'); 我们可以用函数来定义高级替换,而不是一个简单的字符串。比如: function reverseMatch(str) { return str.


一般情况下我们可能会用到正则表达式去替换文本:
代码如下:
var a = "abc123aXc";
a.replace(/a.c/g, 'ZZ');

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

[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);

执行结果为:


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

匹配字符串本身
所有子匹配(如果定义了)
匹配字符串在原始字符串中的位置

文档

javascript正则表达式触发函数进行高级替换_javascript技巧

javascript正则表达式触发函数进行高级替换_javascript技巧:一般情况下我们可能会用到正则表达式去替换文本: 代码如下: var a = abc123aXc; a.replace(/a.c/g, 'ZZ'); 我们可以用函数来定义高级替换,而不是一个简单的字符串。比如: function reverseMatch(str) { return str.
推荐度:
标签: js 替换 触发
  • 热门焦点

最新推荐

猜你喜欢

热门推荐

专题
Top