鍍金池/ 問答/HTML/ 請(qǐng)教下,js正則表達(dá)式,var reg=/\S+/g;reg.test('1')

請(qǐng)教下,js正則表達(dá)式,var reg=/\S+/g;reg.test('1');一會(huì)為true,一會(huì)為false,為什么

1、輸入框不能為空,應(yīng)該怎么寫?

var Validators={
    regNoSpace:/\S+/g,
    checkNoSpace:function(str){
        return Validators.regNoSpace.test(str);
    }
}

clipboard.png

lastIndex:

clipboard.png

回答
編輯回答
夏木

正則匹配全局后 lastIndex會(huì)加1,下一次匹配會(huì)變成從第二位開始,而你test里面只有1位,所以匹配失敗,匹配失敗后lastIndex會(huì)變成0,再下一次匹配從第一位開始,匹配成功.....
要么去掉/g,要么手動(dòng)把reg.lastIndex=0

2017年8月12日 15:41
編輯回答
我不懂

第二次執(zhí)行test時(shí),lastIndex值已經(jīng)改變,可參考test

關(guān)于輸入框不能為空:拿到輸入框的值后,trim()操作,再進(jìn)行判斷

2018年5月23日 07:53