在網站上,用戶在搜索框中輸入一些文本,例如字母「o」。Javascript RegExp無法通過簡單輸入
這將在該網站的JavaScript代碼以下正則表達式:在我遍歷一些字符串
var filterSubstring = $("#FilterOnSubstringBox").val();
var regexp = new RegExp(filterSubstring,"gi");
後來,和測試它們對正則表達式。我想測試對大小寫insenstive,所以這兩個「O」和「O」應符合:
for(var i = 0; i < array.length; i++)
{
var textToSearch = array[i].name;
if(!regexp.test(textToSearch))
{
alert("NOT OK: " + textToSearch + " DID NOT CONTAIN: " + filterSubstring);
}
else
{
alert("OK! " + textToSearch + " CONTAINS: " + filterSubstring);
}
}
不幸的是,我得到以下奇怪的結果。我做了一個jsfiddle(http://jsfiddle.net/grs9xpek/)來展示這一點。
當在字母 'O' 過濾:
OK!: ontwerpbesluitenbundel.dmt CONTAINS: o
OK!: ontwerpbesluitenbundel_body.xta CONTAINS: o
NOT OK: ScriptTemplate.docx DID NOT CONTAIN: o
OK!: ShippingOrder.xta CONTAINS: o
NOT OK: header.xta DID NOT CONTAIN: o
- > scriptTemplate.docx是錯誤的。
在字 'ONT'
OK!: ontwerpbesluitenbundel.dmt CONTAINS: ont
NOT OK: ontwerpbesluitenbundel_body.xta DID NOT CONTAIN: ont
NOT OK: ScriptTemplate.docx DID NOT CONTAIN: ont
NOT OK: ShippingOrder.xta CONTAINS: ont
NOT OK: header.xta DID NOT CONTAIN: ont
過濾時 - > ontwerpbesluitenbundel_body.xta是錯誤的。
爲什麼這些名稱失敗的正則表達式?
您能創建一個小提琴嗎? – 2014-10-29 11:57:23
@ k-nut:完成了,現在更奇怪了...... – user1884155 2014-10-29 12:12:32
所以......你正試圖查看輸入的字符串是否在任何'filterarray'字符串內部有特徵? – 2014-10-29 12:33:05