2011-10-19 9 views
2

가능한 중복과 정규식 만들기 : 내가 변수로 새 정규식을 만들려고하고
Javascript Regexp dynamic generation?자바 스크립트 정규식은 : 변수

을; 그러나, 나는 이것을 행하는 sytax를 모른다. 어떤 도움이라도 좋을 것입니다! (v.name.search (새 정규식 (/ 조쉬 곤잘레스/I)) = -1!) 이것에 변화를 : (v.name.search (새 정규 표현식 (

나는이를 변경해야/q/i))! = -1). 기본적으로 "조쉬"를 변수 q ~ var q = $ ('input [name = "q"]') .val();로 대체해야합니다.

도움과 같이

$('form#search-connections') 
    .submit(function(event) 
    { 
     event.preventDefault(); 
     var q = $('input[name="q"]').val(); 

     console.log(_json); 

     $.each(_json, function(i, v) { 

     //NEED TO INSERT Q FOR JOSH 

      if (v.name.search(new RegExp(/Josh Gonzalez/i)) != -1) { 

       alert(v.name); 
       return; 
      } 
     });   
    } 
); 

답변

8

주셔서 감사합니다 다음 / 문자 사용

new RegExp(q + " Gonzalez", "i"); 

는 정규식 리터럴 구문을 사용하여 정규식을 정의하는 방법이다. 문자열에서 RegExp를 만들려면 문자열을 RegExp 생성자에 전달합니다. 이것들은 다음과 같습니다.

var expr = /Josh Gonzalez/i; 
var expr = new RegExp("Josh Gonzalez", "i"); 

정규 표현식 생성자에 정규 표현식 생성자를 전달하는 방식은 중복됩니다.

+0

흠. 처음에 내 대답을 올렸을 때 응답에 내 대답과 동일한 코드가 없었습니다 (따라서 내가 게시 한 이유). 흥미로운 ... – jfriend00

+0

예, 처음 게시물을 작성한 후 처음 몇 분 안에 대답을 편집합니다. 질문을 다시 읽고, 답을 다시 확인하고, 수정하고, 만족할 때까지 반복하십시오. 나는 너무 느리고 싶지는 않지만 정확하기를 원합니다. 편집을하기 전에 내 원본 게시물을 보았습니까? – gilly3

+0

이 기능은 훌륭했습니다! 여기서, 마지막 코드 : \t \t \t VAR의 Q \t = $ ('입력 [NAME = "Q"]') (.val) \t \t \t R은 \t \t = 새로운 정규식 (Q 'I') ; \t \t \t \t \t \t $ .each (_json 함수 (I, V) { \t \t \t \t \t \t 경우 (v.name.search (R)! = -1) { \t \t \t \t \t \t \t 경고 (v.name) \t \t 반환; \t \t} \t \t}); –

1

당신은 당신이 문자열 추가를 사용하여 원하는 문자열을 구축하고이 같은 정규식 생성자에 전달해야합니다

var q = $('input[name="q"]').val(); 
var re = new RegExp(q + " Gonzalez", "i"); 
if (v.name.search(re) != -1) { 
    // do your stuff here 
}