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 = 'yangxunwu@164.com';
var regs = /[\w\-]+@[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\-]+@[a-zA-Z\d]((\-)?[a-zA-Z\d])*(\.[a-zA-Z\d]((\-)?[a-zA-Z\d])*)*(\.[a-zA-Z]{2,4})/g
yangxunwu@164.com
*****************测试二:
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
Javascript正则表达式匹配替换的更多相关文章
- Vim正则表达式匹配替换字符串
/********************************************************************** * Vim正则表达式匹配替换字符串 * 说明: * 用V ...
- JavaScript 正则表达式匹配成功后的返回结果
原文地址:https://blog.csdn.net/liupeifeng3514/article/details/79005604 使用正则表达式EDIT 正则表达式可以被用于RegExp的exec ...
- javaScript 正则表达式匹配日期
// yyyyMMddhhmmss var pattern = /^(?:(?!0000)[0-9]{4}(?:(?:0[1-9]|1[0-2])(?:0[1-9]|1[0-9]|2[0-8])|(? ...
- idea java 正则表达式匹配替换
原文匹配中文 excelMap.get\((\"[\u4E00-\u9F15]+\")\) 目标 excelMap.get\($1.hashCode\(\)\)
- JavaScript正则表达式匹配中英文以及常用标点符号白名单写法
我们在编程中经常会遇到特殊字符过滤的问题,今天我们提供一种白名单方式过滤 直接上代码 function RegEXP(s) { var rs = ""; for (var i = ...
- 常用的JavaScript正则匹配规则代码收藏,很实用
收集一些常用的JavaScript正则表达式匹配规则,比如匹配电话号码.Email.中文字符.身份证号.邮编.QQ号.过滤空白行.匹配特定数字等.觉得这玩意是很有用的,只不过自己水平菜,老是自己写不出 ...
- javascript正则表达式小数类型
假设你要阅读并了解什么,能阅读.假设只需要结果,直接跳转到这篇文章的结尾. 有使用前需求javascript正则表达式匹配小数类型,后来,他们已经写是不完全正确的识别. 后来在网上找了很多,甚至包含一 ...
- 在Visual Studio中使用正则表达式匹配换行和批量替换
系统环境:Windows 8.1 Enterprise Update 2 x64 开发环境:Mircosoft Visual Studio Ultimate 2013 Update 2 RC 问题:如 ...
- javascript 正则表达式之分组与前瞻匹配详解
本文主要讲解javascript 的正则表达式中的分组匹配与前瞻匹配的,需要对正则的有基本认识,本人一直对两种匹配模棱不清.所以在这里总结一下,如有不对,还望大神指点. 1.分组匹配: 1.1捕获性分 ...
随机推荐
- 一起买beta版模块单元测试
一起买beta版模块接口单元测试 测试目的 保证代码质量,对各个模块进行单元测试,不仅可以有效地保证代码的可靠性,让模块在与别的模块整合时出现更少的错误. 而且不用每次启动程序而等待浪费时间. 单元描 ...
- python 时间类型和相互转换
time有四种类型(time, datetime, string, timestamp) 1. time string string是最简单的表示time的方式 如如下代码生成的即为string &g ...
- MySQL下全文索引
一种特殊的索引,它会把某个数据表的某个数据列出现过的所有单词生成一份清单. alter table tablename add fulltext(column1,column2) 只能在MyISAM数 ...
- ----------jqery和js如何判断checkbox是否选中 --------两个单选按钮如何选一个,且用jquery获取被选的值
jqery和js如何判断checkbox是否选中 jquery: <div id="divId" class="divTable"> <div ...
- 自然语言7_NLTK中文语料库sinica_treebank
http://www.hankcs.com/program/python/nltk-chinese-corpus-sinica_treebank.html NLTK包含Sinica (中央研究院)提供 ...
- JavaWeb学习笔记——JSTL核心标签库
- HTML学习笔记——post表单
1>form1 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http:// ...
- sql FOR XML PATH
FOR XML PATH 有的人可能知道有的人可能不知道,其实它就是将查询结果集以XML形式展现,有了它我们可以简化我们的查询语句实现一些以前可能需要借助函数活存储过程来完成的工作.那么以一个实例为主 ...
- Redis-cluster集群【第四篇】:redis-cluster集群配置
Redis分片: 为什么要分片:随着Redis存储的数据越来越庞大,会导致Redis的性能越来越差! 目前分片的方法: 1.客户端分片 在应用层面分片,程序里指定什么数据存放在那个Redis 优势: ...
- mapreduce 本地调试需要注意的问题
1.写好的程序直接在hadoop集群里面执行 2.如果需要在本地调试,需要注释掉mapred-site.xml <configuration> <!-- <property&g ...