網站首頁 編程語言 正文
明明是符合條件的,第一次校驗是true,第二次就變成了false不符合,原因
例子
export const ngx = {
// 郵箱
email: () => /[\w!#$%&'*+/=?^_`{|}~-]+(?:\.[\w!#$%&'*+/=?^_`{|}~-]+)*@(?:[\w](?:[\w-]*[\w])?\.)+[\w](?:[\w-]*[\w])?/g,
// 手機號
mobile:() => /^[1]\d{10}$g/,
number:() => /^[0-9]*/g,
}
for (let i = 0; i < baseForm.value.length; i++) {
// 手機校驗
if (!ngx.mobile().test(Number(inpValue1)) {
return message.error(`請正確輸入手機號`)
}
if (!ngx.email().test(inpValue2)) {
message.error(`請正確輸入郵箱`)
return
}
}
第一次符合條件兩個都為true,第二次兩個都為false
原因是正則匹配/g的這個問題,
每個正則匹配都有一個lastIndex的屬性
這屬性在后面/g的時候會記錄最后一個符合條件的下標的位置,導致下次一遍歷是從這個下標開始,
比如ngx.test(13566664444) //這個時候第一次校驗結束lastIndex在第11個位置,再次校驗是從第11為開始i往后校驗,沒有數據就顯示false
所以,解決這個問題就是取消/g以及將這個屬性寫成閉包的形式
export const ngx = {
// 郵箱
email: () => /[\w!#$%&'*+/=?^_`{|}~-]+(?:\.[\w!#$%&'*+/=?^_`{|}~-]+)*@(?:[\w](?:[\w-]*[\w])?\.)+[\w](?:[\w-]*[\w])?/,
// 手機號
mobile:() => /^[1]\d{10}$/,
number:() => /^[0-9]*/,
}
for (let i = 0; i < baseForm.value.length; i++) {
// 手機校驗
if (!ngx.mobile().test(Number(inpValue1)) {
return message.error(`請正確輸入手機號`)
}
if (!ngx.email().test(inpValue2)) {
message.error(`請正確輸入郵箱`)
return
}
}
這樣一來不管怎么for循環lastIndex都是從下標0開始
原文鏈接:https://blog.csdn.net/m0_64207574/article/details/131113705
- 上一篇:沒有了
- 下一篇:沒有了
相關推薦
- 2022-12-13 python辦公自動化(Excel)的實例教程_python
- 2022-10-28 keepalived對nginx進行高可用搭建及原理詳解_nginx
- 2022-08-07 GoFrame框架gredis優雅的取值和類型轉換_Golang
- 2022-07-11 atom插件之·atom-minify配置支持壓縮es6
- 2022-02-25 C語言函數棧幀的創建和銷毀介紹_C 語言
- 2022-03-26 Flutter構建自定義Widgets的全過程記錄_Android
- 2022-10-31 C#?如何調用python腳本_C#教程
- 2022-11-19 Compose?動畫藝術之屬性動畫探索_Android
- 欄目分類
-
- 最近更新
-
- window11 系統安裝 yarn
- 超詳細win安裝深度學習環境2025年最新版(
- Linux 中運行的top命令 怎么退出?
- MySQL 中decimal 的用法? 存儲小
- get 、set 、toString 方法的使
- @Resource和 @Autowired注解
- Java基礎操作-- 運算符,流程控制 Flo
- 1. Int 和Integer 的區別,Jav
- spring @retryable不生效的一種
- Spring Security之認證信息的處理
- Spring Security之認證過濾器
- Spring Security概述快速入門
- Spring Security之配置體系
- 【SpringBoot】SpringCache
- Spring Security之基于方法配置權
- redisson分布式鎖中waittime的設
- maven:解決release錯誤:Artif
- restTemplate使用總結
- Spring Security之安全異常處理
- MybatisPlus優雅實現加密?
- Spring ioc容器與Bean的生命周期。
- 【探索SpringCloud】服務發現-Nac
- Spring Security之基于HttpR
- Redis 底層數據結構-簡單動態字符串(SD
- arthas操作spring被代理目標對象命令
- Spring中的單例模式應用詳解
- 聊聊消息隊列,發送消息的4種方式
- bootspring第三方資源配置管理
- GIT同步修改后的遠程分支