正则表达式 替换字符串 [javascript]
2013-12-26 11:06
295 查看
需求:将”冰\\雨三刘德\\\"华-----\\12雨3\\\\\\\\\\222222“中的"\\"替换成||,而且是只替换\\,不能替换多于两个\的字符,比如,样例中,应该只替换冰雨中间的\\和--12中间的\\。
正则表达式是我的老朋友了,喜欢上它大概是07年的时候处理一个发布系统标签读取的项目,好长时间没用了,有点生疏了。遇到字符串处理的问题,我第一想到的肯定是正则表达式,eclipse里也常备一款Regular的插件,简单思考后就有了:
直接往javascript里搬吧,发现javascript不支持(?<!)的写法,也就是不支持”反向否定预查“,只能用其他方式了,于是有了:
这样写,不仅会将符合条件的\\捕获到,也会将前边的一个字符捕获到,脑子有点不灵光,想了半天,没想出好的方法,最后逆向思维了一下,把那个字符提取出来和要替换的字符合并不就成了吗?于是有了:
正则表达式是我的老朋友了,喜欢上它大概是07年的时候处理一个发布系统标签读取的项目,好长时间没用了,有点生疏了。遇到字符串处理的问题,我第一想到的肯定是正则表达式,eclipse里也常备一款Regular的插件,简单思考后就有了:
直接往javascript里搬吧,发现javascript不支持(?<!)的写法,也就是不支持”反向否定预查“,只能用其他方式了,于是有了:
function change(newStr){ //var reg = /(?<!\\)\\\\(?!\\)/g; var reg = /[^\\](\\{2})(?!\\)/g; //var str_before = '冰\\雨三刘德\\\"华-----\\12雨3\\\\\\\\\\222222'; var str_before = '冰\\\\雨三刘德\\\\\\"华-----\\\\12雨3\\\\\\\\\\\\\\\\\\\\222222'; var str_after = str_before.replace(reg,newStr); alert(str_after); }
这样写,不仅会将符合条件的\\捕获到,也会将前边的一个字符捕获到,脑子有点不灵光,想了半天,没想出好的方法,最后逆向思维了一下,把那个字符提取出来和要替换的字符合并不就成了吗?于是有了:
function change(newStr){ //var reg = /(?<!\\)\\\\(?!\\)/g; var reg = /[^\\](\\{2})(?!\\)/g; //var str_before = '冰\\雨三刘德\\\"华-----\\12雨3\\\\\\\\\\222222'; var str_before = '冰\\\\雨三刘德\\\\\\"华-----\\\\12雨3\\\\\\\\\\\\\\\\\\\\222222'; var str_after = str_before.replace(reg, function(m){ m = m.substring(0, 1); return m + newStr; }); alert(str_after); }基本满足需求。
相关文章推荐
- JavaScript_正则表达式小试牛刀-字符串的替换
- javascript之更有效率的字符串替换
- 在JavaScript中替换字符串
- javascript replace 只替换html 标签外的字符串
- JavaScript中的字符串替换
- 把textarea中字符串里含有的回车换行替换成<br>的javascript代码
- JavaScript 替换全部字符串replace
- javascript字符串替换所有要替换字符
- Javascript 字符串替换
- JavaScript替换全部字符串
- JavaScript字符串插入、删除、替换函数
- JavaScript字符串插入、删除、替换函数的例子
- [javascript]替换所有带/的字符串
- JavaScript查找Html字符串中的img标签替换src属性的内容
- 正则表达式将字符串中的所有连续空格替换成一个空格
- javascript将字符串中的多个空格替换为一个空格的正则实例
- 20080408 - Javascript中的字符串替换replaceG
- JavaScript字符串插入、删除、替换函数使用示例
- javascript将字符串中的多个空格替换为一个空格的正则实例