我正在處理一個需求,我需要在提交表單之前允許文本框中的幾個值。下面的正則表達式工作正常,但它允許「測試」和「開發」以外的字符串。重要的是它應該忽略大小寫敏感的。它應該讓「開發」,「DEV」,「開發」等等......你想要去正則表達式忽略區分大小寫的字符串Java腳本
pattern="(?i)^(?:testing|dev|)$"
我正在處理一個需求,我需要在提交表單之前允許文本框中的幾個值。下面的正則表達式工作正常,但它允許「測試」和「開發」以外的字符串。重要的是它應該忽略大小寫敏感的。它應該讓「開發」,「DEV」,「開發」等等......你想要去正則表達式忽略區分大小寫的字符串Java腳本
pattern="(?i)^(?:testing|dev|)$"
的/i
標誌應該讓你:
pattern = text.match(/^(?:testing|dev|)$/i);
text.match(pattern);
Regexr:http://regexr.com/3e6nd
刪除引號,所以它是一個字符串,所有的符號將被轉義(並且標誌變成字符)。你在正則表達式中失去了'^ ... $':'text.match(/ ^(?: testing | dev |)$/i)' – Thomas
謝謝@Thomas! –
@Kiran在這段代碼中** **開發**這個詞將是一個匹配,不應該被允許 –
該代碼將返回一個陣列具有用於任何陣列中的單詞的第一個匹配。請注意,單詞開發或測試將不會匹配,因爲它使用字邊界斷言\b
。
代碼:
var userInput = 'Development thetesting devs Dev testING test testIng',
result = userInput.match(/\b(testing|dev)\b/i);
console.log(result && result[0]);
你能給出比 「測試」 和 「開發」 等字符串允許的例子? – Janar
據我所知,JS不支持這些修飾符。試試'pattern =/^(?: testing | dev |)$/i;' – ClasG
爲什麼不使用'.toLowerCase()'之類的東西? – ventaquil