首页 > 其他分享 >正则表达式_global造成的二次的匹配结果不一致的问题

正则表达式_global造成的二次的匹配结果不一致的问题

时间:2023-11-05 18:23:50浏览次数:32  
标签:匹配 log 正则表达式 global lastIndex num test reg

let num = 77795
const reg = /^[0-9]\d*$/g
console.log(reg.test(num)) // true
console.log(reg.test(num)) // false
  • 正则的 lastIndex 从字面上来讲就是最后一个索引,实际上它的意思是正则表达式开始下一次查找的索引位置,第一次的时候总是为 0 的,第一次查找完了的时候会把 lastIndex 的值设为匹配到得字符串的最后一个字符的索引位置加 1,第二次查找的时候会从 lastIndex 这个位置开始,后面的以此类推。如果没有找到,则会把 lastIndex 重置为 0。要注意的是,lastIndex 属性只有在有全局标志正则表达式中才有作用
  • 解决: 每次调用前都设置lastIndex值为0
let num = 77795
const reg = /^[0-9]\d*$/g
setInterval(() => {
  reg.lastIndex = 0
  console.log(reg.test(num)) // true
}, 1000)

标签:匹配,log,正则表达式,global,lastIndex,num,test,reg
From: https://www.cnblogs.com/isAyi/p/17810848.html

相关文章

  • mysql正则表达式替换
    MySQL正则表达式替换在MySQL中,正则表达式替换是一种强大的功能,它可以帮助我们快速、灵活地对字符串进行处理和修改。本文将介绍MySQL中如何使用正则表达式替换,并提供一些实际的代码示例。什么是正则表达式?正则表达式(RegularExpression)是一种用于描述模式匹配的字符串。它由正则表......
  • 变量替换-匹配截取
    索引及切片[root@linux-server~]#a=12345678[root@linux-server~]#echo${a:5}#从左往右第5位开始截取,留下后三位678[root@linux-server~]#echo${a:3:4}#从第3位开始截取,留下后四位的,剩下的都不要。4567[root@linux-server~]#echo${a:2:-1}#从左往右第2位开始......
  • 使用Python和正则表达式格式化字符串中的所有数字
    在处理文本数据时,我们经常需要提取或格式化特定的信息。在这些情况下,Python的正则表达式库(re模块)可以非常有用。让我们看一个具体的例子,如何使用Python和正则表达式来格式化字符串中的所有数字。首先,我们需要导入Python的正则表达式库。在Python中,正则表达式的操作主要通过"re"模块......
  • 正则表达式:IP地址和子网掩码
    #IP地址echoX.X.X.X|grep-E'^(22[0-3]|2[0-1][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])(.(25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])){3}$'#子网掩码echoX.X.X.X|grep-E'^((255.255.255.(0|128|192|224|240|248|252|254|255))|(255.255.(0|128......
  • MySQL正则表达式
    1. 正则表达式运算符expressionNOTREGEXPpattern,expressionNOTRLIKEpatternexpressionREGEXPpattern,expressionRLIKEpattern如果表达式expression匹配给定模式pattern返回1,否则返回0.如果表达式expression或者模式pattern为NULL,则返回NULLRLIKE和REGEXP一样.2......
  • 字符串匹配算法:KMP
    Knuth–Morris–Pratt(KMP)是由三位数学家克努斯、莫里斯、普拉特同时发现,所有人们用三个人的名字来称呼这种算法,KMP是一种改进的字符串匹配算法,它的核心是利用匹配失败后的信息,尽量减少模式串与主串的匹配次数以达到快速匹配的目的。它的时间复杂度是O(m+n)字符匹配:给你两个字符......
  • AI问答:关于字符串匹配算法的区别及应用场景,哈希/kmp/字典树/AC自动机
    1. 哈希(Hashing):哈希是一种将字符串转换为唯一标识符的技术,通常用于字符串的快速查找和比较。实现难度相对较低,但需要处理哈希冲突的问题。哈希在处理大量数据的查找和比较问题时非常实用。2. KMP(Knuth-Morris-Pratt):KMP 是一种用于字符串匹配的算法,特别适用于查找子串在主串中的......
  • Python 正则表达式(RegEx)指南
    正则表达式(RegEx)是一系列字符,形成了一个搜索模式。RegEx可用于检查字符串是否包含指定的搜索模式。RegEx模块Python中有一个内置的包叫做re,它可以用于处理正则表达式。导入re模块:importrePython中的RegEx,一旦导入了re模块,您就可以开始使用正则表达式了。示例:搜索......
  • Python 正则表达式(RegEx)指南
    正则表达式(RegEx)是一系列字符,形成了一个搜索模式。RegEx可用于检查字符串是否包含指定的搜索模式。RegEx模块Python中有一个内置的包叫做re,它可以用于处理正则表达式。导入re模块:importrePython中的RegEx,一旦导入了re模块,您就可以开始使用正则表达式了。示例:搜索......
  • 正则表达式语法大全
     正则表达式基本符号:^表示匹配字符串的开始位置(例外用在中括号中[]时,可以理解为取反,表示不匹配括号中字符串)$表示匹配字符串的结束位置*表示匹配零次到多次+表示匹配一次到多次(至少有一次)?表示匹配零次或一次.表示匹配单个字符|表示为或者,两项中取一项()......