웹 사이트에서 사용자는 검색 상자에 문자 "o"와 같은 텍스트를 입력합니다.Javascript 간단한 입력에 실패한 RegExp
이 사이트의 자바 스크립트 코드에 다음과 같은 정규 표현식 작성
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가 잘못된 것입니다.
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
'ONT'라는 단어 필터링 -> ontwerpbesluitenbundel_body.xta가 잘못된 것입니다.
왜 그 이름이 정규식에 실패합니까?
피들을 만들 수 있습니까? –
@ k-nut : done, 이제는 더 이상합니다 ... – user1884155
그래서 ... 입력 된 문자열이'filterarray' 문자열 안에 있는지 확인하려고합니까? –