首页 > 其他分享 >正则匹配替换字符串

正则匹配替换字符串

时间:2022-09-19 11:23:46浏览次数:87  
标签:qwer5678google replace 正则 blank 字符串 替换 百度

记录一下,正则匹配字符串

例:

let a = 'asdf1234<a href="http://www.baidu.com">百度</a>qwer5678<a class="123" href="http://www.google.com">google</a>'

现在要给所有a标签,都加上target="_blank"来让他用新窗口打开

想了一下,基础版写法:

a.replace(/<a/, '<a target="_blank"') // 结果: 'asdf1234<a target="_blank" href="http://www.baidu.com">百度</a>qwer5678<a class="123" href="http://www.google.com">google</a>'

转过头一想,如果字符串中有<a出现,不是代表a标签的意思,那按照上面的正则,一样能匹配到,这种情况该怎么办

在mdn上看了下replace的用法,发现有个 $ ,看了下,没大看明白...

试了下用法,还不错

a.replace(/>(.*?<\/a>)/g, ' target="_blank">$1') // 结果:'asdf1234<a href="http://www.baidu.com" target="_blank">百度</a>qwer5678<a class="123" href="http://www.google.com" target="_blank">google</a>'

相当于正则内的尖角号后面的()内容部分,当成一个整体,替换的时候用$1来代替,使后半部分不变

感兴趣的可以去看下replace的参数设计   https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Global_Objects/String/replace

标签:qwer5678google,replace,正则,blank,字符串,替换,百度
From: https://www.cnblogs.com/workJiang/p/16707102.html

相关文章

  • 正则re
    importre1,站长之家正则表达式http://tool.chinaz.com/regex2.什么是正则表达式一套规则,匹配字符串的,只能操作字符串#能做什么1,检测一个输入的字符串是否合法2.从一个大文......
  • 字符串中判断是否包含某个字符
    一、方法一:newRegExp1、概述:RegExp是正则表达式的缩写;当检索某个文本时,可以使用一种模式来描述要检索的内容。RegExp就是这种模式2.RegExp对象的方法1)RegExp对......
  • Sublime Text一键替换空行
    替换框中的Find输入^(\t)*$\n,Replace什么都不写,勾选Wrap、Highlightmatches、Regularexpression即可预览被替换的内容,然后点击替换即可。......
  • word脚注替换备忘
    用不到latex有需要批量改的时候 ^e(尾注)^f(脚注)替换为[^&] 改上下标的话记得格式选到非上下标......
  • Leetcode第8题:字符串转换整数 (atoi)
    /**这题就是要细心,首先要通过循环去掉前面的空格然后看看有没有正号或者负号,或者没有符号再看看数字有没有越界*/classSolution{publicintmyAtoi(Strings)......
  • Linux三剑客之一——grep及正则表达式的学习
    1.grep理论1.1grep作用1.2grep参数及说明1.3 基本正则表达式BRE集合1.4 扩展正则表达式ERE集合2.grep实践2.1grep基本参数2.2 grep正则表达式3.总结 1.gr......
  • leetcode1047-删除字符串中的所有相邻重复项
    1047.删除字符串中的所有相邻重复项 方法一:stack 这种做法是纯纯的小丑做法,因为string类型本身就可以实现栈。这样的做法结束之后还要出栈倒序放到字符串里,时间开销......
  • leetcode 2414. 最长的字母序连续子字符串的长度
    leetcode2414.最长的字母序连续子字符串的长度题目描述字母序连续字符串是由字母表中连续字母组成的字符串。换句话说,字符串"abcdefghijklmnopqrstuvwxyz"的任意子......
  • C++ Unicode字符串
    字符串前面加L表示该字符串是Unicode字符串。_T是一个宏,如果项目使用了Unicode字符集(定义了UNICODE宏),则自动在字符串前面加上L,否则字符串不变。因此,VisualC++里边定义字符......
  • 字符串的各种处理
    整行读入string,getline(cin,string)整行读入char[]1.cin.getline(char[],length)2.fgets(char[],length,stdin)3.scanf("%[^\n]",&s);=>[]表示读入字符......