1使用兩次indexOf來判斷
代碼略
2使用相反意義的正則表達式
var case1 = "某某公司"; var case2 = "某某合伙"; var case3 = "某某公司或合伙"; var case4 = "某某目標字符串"; var reg = /公司|合伙/; reg.test(case1); //true reg.test(case2); //true reg.test(case3); //true reg.test(case4); //false //寫一個簡單的函數組織一下 function notContains(opt) { return !reg.test(opt); }
3使用負向前瞻正則表達式
var reg = /^(?!.*(公司|合伙))(.*)$/;
reg.test(case1); //false reg.test(case2); //false reg.test(case3); //false reg.test(case4); //true
解釋一下正則:
-
外層限定開始和結尾
var reg = /^$/
-
負向前瞻
var reg = /^(?!.*(公司|合伙))$/
這個(?!.*(公司|合伙))只匹配位置,表明右邊沒有出現.*(公司|合伙)的情況就可以匹配。(公司|合伙)是分支的意思。
-
匹配任意字符
var reg = /^(?!.*(公司|合伙))(.*)$/
這樣才可以匹配字符,沒有這個(.*),上面的正則實際上和/^$/差不多。
