Javascript中正则表达式的应用详解

 更新时间:2022年02月18日 09:21:27   作者:爱学习的ljz  
这篇文章主要为大家详细介绍了Javascript中正则表达式的应用,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下,希望能够给你带来帮助

正则表达式 在前端中的应用也是比较常见的,我们在有时候也需要 用js 对某些字符串进行查找\捕获 或者 替换. js 中正则表达式 一般应用在string类型和 RegExp 两种类型中。

string

search

search() 方法 用于检索字符串中指定的子字符串,或检索与正则表达式相匹配的子字符串,并返回子串的起始位置。

'Hello World!'.search(/world/i);  // 6  返回匹配出的第一个字符串的开始位置索引,
//与 indexOf 方法类似,但是 search方法 可以支持 正则表达式,功能更加强大  

replace

修改某个字符串 将内容中的某个子串 替换为其他内容,可以支持字符串替换,也支持正则表达式替换,建议正则表达式替换,功能会更加强大。返回值为替换处理完成的字符串

// 1. 最简单的应用,world 替换为 ljz
'Hello World!'.replace(/world/i,'ljz'); // 返回值('Hello ljz!') i模式可以忽略大小写
// 2 如果要替换 的字符串为动态字符串,并且可能包含特殊符号 比如 '?' 这样构造正则表达式,
//如果包含特殊符号会影响正则匹配,会有可能匹配不到,所以可以考虑使用字符串替换.
// 如下,要将src属性为指定值 的 标签 加上classname属性为 ‘aaaImg'
const str = '/aaa/bbb?fileid=111';
'<img src="/aaa/bbb?fileid=111" ><h2>123</h2><p>444</p>'.replace(`src="${str}"`,`src="${str}" className="aaaImg"`);
// 返回值('<img src="/aaa/bbb?fileid=111" className="aaaImg" ><h2>123</h2><p>444</p>')
// 3. 上述情况如果只适用于替换一个字符串,如果我要替换的串是有多个呢,有两种解决思路, 一是可以继续使用字符串替换,可以使用replaceAll方法,用法与repalce相同,但是可以进行全部替换,ie浏览器不支持repalceAll方法,如果要考虑兼容ie ,那就只能考虑第二种方式了。
// 使用正则表达式,正则表达式有全局模式,可以支持全部替换,就是需要对要构造正则表达式的动态字符串进行处理一下,避免特殊符号影响匹配的情况。
// 可以先对  动态字符串进行转码,在对要处理的字符串进行转码处理,然后进行全局替换,替换完成再进行解码还原字符串就可以了。
'<img src="/aaa/bbb?fileid=111" ><h2>123</h2><p>444</p><img src="/aaa/bbb?fileid=111" >';
const regExp = new RegExp(encodeURIComponent('src="/aaa/bbb?fileid=111"'),'g'); 
const data = encodeURIComponent(dataStr).replace(regExp, decodeURIComponent('src="/aaa/bbb?fileid=111 className="aaaImg"'));
decodeURIComponent(data);  // 返回值('<img src="/aaa/bbb?fileid=111 className="aaaImg" ><h2>123</h2><p>444</p><img src="/aaa/bbb?fileid=111 className="aaaImg" >')

match:

string.match(regexp);可在字符串内检索指定的值,或找到一个或多个正则表达式的匹配。规定要匹配的模式的RegExp对象。如果该参数不是RegExp对象,则需要首先把它传递给RegExp构造函数,将其转换为RegExp 对象,返回值为一个数组,里面存放匹配出的各项字符串。

var str=”The rain in SPAIN stays mainly in the plain ;
var n=str.match(/ain/gi); // 输出结果: ain,AlN,ain,ain ,match与 下面exec方法类似,只不过match是字符串的方法,exec是 正则表达式的方
法。

RegExp

JavaScript中,RegExp对象是一个预定义了属性和方法的正则表达式对象

test:

用于检测一一个字符串是否匹配某个模式,如果字符串中含有匹配的文本,则返回true,否则返回false。

const reg = new RegEx//jz/);
reg.test(hello ljz!); // true

exec:

用于检索字符串中的正则表达式的匹配。该函数返回一个数组,其中存放匹配的结果。如果未找到匹配,则返回值为null。

// 最基本匹配
const reg1 = new RegExp(/
ljz)d+); // 匹配ljz后面携带数字的串
reg1.exec('cmasklnvjksdfbnk12345
6cdsnjkvbsdfhjjz123vbfsdhj)[0]; // 123

//捕获对应的字符串
// ()会把每个分组里的匹配的值保存起来,exec得到一一个数组,此时捕获分组会把匹配到的值保存起来,从数组下标[1]开始依次存储
// [^]表示以此结束的串([^"]*) 就可以是捕获分组以"结束的串
const reg2 = new RegExp(/id="([^"]*/); //要捕获标签字符串中的id属性值
reg2.exec("<img id=\"cFF2vAMVq" src=\"/aaa/bbb\"/>');//返回数组。0为匹配到的字符串('d="cFF2vAMVq'),1为要捕获的串('cFF2vAMVq')

总结

本篇文章就到这里了,希望能够给你带来帮助,也希望您能够多多关注脚本之家的更多内容!

相关文章

  • 浅谈javascript事件取消和阻止冒泡

    浅谈javascript事件取消和阻止冒泡

    这篇文章主要介绍了浅谈javascript事件取消和阻止冒泡的方法和示例,有需要的小伙伴可以参考下。
    2015-05-05
  • javascript中的this详解

    javascript中的this详解

    avaScript 中的 this 关键字,深入浅出的分析其在不同情况下的含义,形成这种情况的原因以及 Dojo 等 JavaScript 工具中提供的绑定 this 的方法。可以这样说,正确掌握了 JavaScript 中的 this 关键字,才算迈入了 JavaScript 这门语言的门槛。
    2014-12-12
  • JavaScript 异步函数 Promisification 处理详情

    JavaScript 异步函数 Promisification 处理详情

    这篇文章主要介绍了JavaScript异步函数Promisification处理详情,文章围绕主题展开详细的内容介绍,具有一定的参考价值,需要的小伙伴可以参考一下
    2022-08-08
  • JavaScript验证API的使用

    JavaScript验证API的使用

    本文主要介绍了JavaScript验证API的使用,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2023-02-02
  • 微信小程序实现点赞、取消点赞功能

    微信小程序实现点赞、取消点赞功能

    这篇文章主要为大家详细介绍了微信小程序实现点赞、取消点赞,和多项点击功能,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2018-11-11
  • 新浪微博字数统计 textarea字数统计实现代码

    新浪微博字数统计 textarea字数统计实现代码

    从新浪微博代码里抄的,非常不错,需要的朋友可以参考下。
    2011-08-08
  • javascript面向对象之this关键词用法分析

    javascript面向对象之this关键词用法分析

    这篇文章主要介绍了javascript面向对象之this关键词用法分析,以实例形式分析了在不同场合下this使用中的特性及相关使用技巧,需要的朋友可以参考下
    2015-01-01
  • js中定义一个变量并判断其是否为空的方法

    js中定义一个变量并判断其是否为空的方法

    这篇文章主要介绍了js中定义一个变量 var params=null;判断params 为/不为空的方法 ,需要的朋友可以参考下
    2014-05-05
  • javascript顺序加载图片的方法

    javascript顺序加载图片的方法

    这篇文章主要介绍了javascript顺序加载图片的方法,可实现javascript针对图片的逐次加载,从而减缓服务器压力,非常具有实用价值,需要的朋友可以参考下
    2015-07-07
  • js实现计时器秒表功能

    js实现计时器秒表功能

    这篇文章主要为大家详细介绍了js实现计时器秒表功能,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2019-12-12

最新评论