Javascript正则表达式匹配替换

根据正则表达式的匹配结果将匹配项替换为*function regReplace(reg, str){
    var result,        //最终输出结果
        out,           //每次运行正则exec返回的匹配结果。
        index,         //匹配项在字符串中位置
        length;        //匹配项长度

    result = str.split("");            //将待匹配的字符串分开成数组,等待处理
    while(out = reg.exec(str)){        //当匹配成功返回out数组,如果没有匹配项或达到字符串末尾返回null
        length = out[0].length;        //匹配项长度
        for(var i = 0; i < length; i++){    //从开始匹配的位置,根据匹配项长度循环替换为*
            index = reg.lastIndex;
            result.splice(index -length + i, 1, "*");
        }
    }
    return reg + "\n"+ str + "\n" + result.join(""); //返回结果
}
测试一:

var strs = ‘[email protected]‘;
var regs = /[\w\-][email protected][a-zA-Z\d]((\-)?[a-zA-Z\d])*(\.[a-zA-Z\d]((\-)?[a-zA-Z\d])*)*(\.[a-zA-Z]{2,4})/g;
var outCome = regReplace(regs, strs);
console.log(outCome);

输出:

/[\w\-][email protected][a-zA-Z\d]((\-)?[a-zA-Z\d])*(\.[a-zA-Z\d]((\-)?[a-zA-Z\d])*)*(\.[a-zA-Z]{2,4})/g
[email protected]
*****************

测试二:var str = ‘a aa aaa aaaa ab abb abbba abcba‘;
var reg = /ab+/g;
输出:
/ab+/g
a aa aaa aaaa ab abb abbba abcba
a aa aaa aaaa ** *** ****a **cba
时间: 2024-10-19 20:07:09

Javascript正则表达式匹配替换的相关文章

Vim正则表达式匹配替换字符串

/********************************************************************** * Vim正则表达式匹配替换字符串 * 说明: * 用Vim用了几年了,平时也就替换字符串比较多,很少用正则表达式替换, * 今天在修改HTML文档的时候,不想一个一个去替换. * * 2018-6-1 深圳 宝安西乡 曾剑锋 ****************************************************************

javascript正则表达式匹配邮编与邮箱

//i 忽略大小写 //g 全局匹配 //m 多行匹配 /* //邮编匹配 var pattern = /^[\w\-]+\.(zip|gz|rar)$/;    //[a-zA-Z0-9_]可以用\w代替 // 加上^限定首字符匹配 var str = '2-13.rar'; //文件名:字母_数字 . zip,gz,rar,7z document.write(pattern.exec(str)); //压缩包名字匹配 var pattern = /^[\w\-]+\.zip|gz|rar/;

常用的JavaScript正则匹配规则代码收藏,很实用

收集一些常用的JavaScript正则表达式匹配规则,比如匹配电话号码.Email.中文字符.身份证号.邮编.QQ号.过滤空白行.匹配特定数字等.觉得这玩意是很有用的,只不过自己水平菜,老是自己写不出,看了这个文档,觉得心里踏实很多,用到正则匹配的时候,看下这个,相信为让你省不少时间.注:本正则不仅限于在JS中使用,其它语言也可以借鉴. 匹配特定数字: ^[1-9]\d*$ //匹配正整数 ^-[1-9]\d*$ //匹配负整数 ^-?[1-9]\d*$ //匹配整数 ^[1-9]\d*|0$

javascript正则表达式小数类型

如果想要阅读和理解一下的,可以读一下.如果只需要结果,直接跳到本文最后. 曾经有需求用javascript正则表达式匹配小数类型,后来自己之前写的也是不能完全正确识别. 后来在网上找了许多,甚至包括一些老外的纯英文论坛什么的,发现都是错的,都不够全面. 常见错误: 1.   /^-?\d+\.\d+$/   http://blog.csdn.net/xxd851116/article/details/4352011 随便一看就知道,如果前面带+则错误,如果没有小数点则错误,如果00.123也不错

PHP 正则表达式匹配 img ,PHP 正则提取或替换图片 img 标记中的任意属性。

PHP正则提取或替换img标记属性 PHP 正则表达式匹配 img ,PHP 正则提取或替换图片 img 标记中的任意属性. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 <?php /*PHP正则提取图片img标记中的任意属性*/ $str = '<center><img src="/uploads/images/20100516000.jpg"

正则表达式之匹配替换

最近做word脚注用到了正则表达式的匹配替换功能.我提取rtf字符串中书签的名称,更改名称后,再替换到字符串中.看代码: 1 var range = fd_Field.Result.Footnotes[1].Range; 18 str_Content = Regex.Replace(str_Content, @"\\bkmk(start|end) _(\w+)}", "\\bkmk$1 _$2_" + fid + "}", RegexOption

在Visual Studio中使用正则表达式匹配换行和批量替换

系统环境:Windows 8.1 Enterprise Update 2 x64 开发环境:Mircosoft Visual Studio Ultimate 2013 Update 2 RC 问题:如何在Visual Studio中使用正则表达式匹配换行符,空白符,Tab符等特殊符号,并且在当前文档或当前项目或整个解决方案中批量替换你指定的代码文字? 例子: 1 /// <summary> 2 /// 根据条件查询表中所有数据 3 /// </summary> 4 /// <

javascript 正则表达式之分组与前瞻匹配详解

本文主要讲解javascript 的正则表达式中的分组匹配与前瞻匹配的,需要对正则的有基本认识,本人一直对两种匹配模棱不清.所以在这里总结一下,如有不对,还望大神指点. 1.分组匹配: 1.1捕获性分组匹配 () 2.2非捕获性分组匹配 (?:)2前瞻匹配: 2.1正向前瞻匹配: (?=表达式) 后面一定要匹配有什么 2.2反向前瞻匹配: (?!表达式) 后面一定不能要有什么 1.1.捕获性分组匹配 () var str1 = "holle word 123456 can 12s a 123 a

LeetCode10.正则表达式匹配 JavaScript

给定一个字符串 (s) 和一个字符模式 (p).实现支持 '.' 和 '*' 的正则表达式匹配. '.' 匹配任意单个字符. '*' 匹配零个或多个前面的元素. 匹配应该覆盖整个字符串 (s) ,而不是部分字符串. 说明: s 可能为空,且只包含从 a-z 的小写字母. p 可能为空,且只包含从 a-z 的小写字母,以及字符 . 和 *. 示例 1: 输入: s = "aa" p = "a" 输出: false 解释: "a" 无法匹配 &quo