js相同的正则多次调用test()返回的值却不同的问题
2024-10-19 13:24:30
js代码:
var name = '测试中文';// 姓名
var nameRgexp = new RegExp("[a-zA-Z\u4e00-\u9fa5]{2,}","g"); console.log(nameRgexp.test(name)); // true var company = '测试中文';// 和name一样的值
console.log(nameRgexp.test(company)); // false
问题原因:
这是因为正则reg
的g
属性,设置的全局匹配。RegExp
有一个lastIndex
属性,来保存索引开始位置。
上面的问题,第一次调用的lastIndex
值为0,到了第二次调用就不是0了
解决方案
- 第一种方案是将
g
去掉,关闭全局匹配。 - 第二种就是在每次匹配之前将
lastIndex
的值设置为0。
来源:https://blog.csdn.net/qq_30100043/article/details/80092012
最新文章
- 【BZOJ-3996】线性代数 最小割-最大流
- Linux线程-终止
- 美团在Redis上踩过的一些坑-目录(本人非美团)(转)
- [Coursera]Machine Learning
- Linux 中 10 个有用的命令行补全例子
- Activitys, Threads, &; Memory Leaks
- MySQL学习笔记(三):常用函数
- Xmemcached学习笔记
- 搭建angular1 gulp项目(上传到gitup)
- Java 面试宝典-2017
- 关于Goldwell平台推出赠金及手数奖励
- 第九节: EF的性能篇(二) 之 Z.EntityFramework.Extensions程序集解决EF的性能问题
- 网络编程懒人入门(八):手把手教你写基于TCP的Socket长连接
- C++ 解析Json——jsoncpp(转)
- laravel 列表搜索查询(when,with用法以及关联图像id处理图像路径)
- Eclipse中tomcat更改部署路径 deply path
- 【CF1132F】Clear the String (DP)
- 零基础学习python_easygui(35课)
- 说一下PHP中die()和exit()区别
- js-jquery-插件开发(一)
热门文章
- 解决微信官方SDK给出1.4.0等版本没有预览文件(previewFile)等接口
- DVWA靶场之XSS(Stored)通关
- 017 PCIe总线的事务层(一)
- ubuntu18.4 与pc notepad++ 使用nppftp
- C# 中的异步问题 Task
- 【springcloud】Eureka 常用配置解析
- uwp 语音指令
- Promise.resolve()与Promise
- 取消Ubuntu开机硬盘自检
- Clean Architecture For RazorPage 实现多语言和本地化