我希望目標(biāo)字符串中不包含公司或合伙,目標(biāo)字符串名字叫Name
擁有18年軟件開發(fā)和IT教學(xué)經(jīng)驗。曾任多家上市公司技術(shù)總監(jiān)、架構(gòu)師、項目經(jīng)理、高級軟件工程師等職務(wù)。 網(wǎng)絡(luò)人氣名人講師,...
1使用兩次indexOf來判斷
代碼略
2使用相反意義的正則表達(dá)式
var?case1?=?"某某公司"; var?case2?=?"某某合伙"; var?case3?=?"某某公司或合伙"; var?case4?=?"某某目標(biāo)字符串"; var?reg?=?/公司|合伙/; reg.test(case1);?//true reg.test(case2);?//true reg.test(case3);?//true reg.test(case4);?//false //寫一個簡單的函數(shù)組織一下 function?notContains(opt)?{ ????return?!reg.test(opt); }
3使用負(fù)向前瞻正則表達(dá)式
var?reg?=?/^(?!.*(公司|合伙))(.*)$/; reg.test(case1);?//false reg.test(case2);?//false reg.test(case3);?//false reg.test(case4);?//true
解釋一下正則:
外層限定開始和結(jié)尾
var reg = /^$/
負(fù)向前瞻
var reg = /^(?!.*(公司|合伙))$/
這個(?!.*(公司|合伙))只匹配位置,表明右邊沒有出現(xiàn).*(公司|合伙)的情況就可以匹配。
(公司|合伙)是分支的意思。
匹配任意字符
var reg = /^(?!.*(公司|合伙))(.*)$/
這樣才可以匹配字符,沒有這個(.*),上面的正則實(shí)際上和/^$/差不多。