2011-04-25 3 views
0

패턴 매칭 ... 기본적으로JQuery와 - 나는 JQuery와 일치() 함수를 사용하려고 노력했지만, 내가 일을하려고 아무것도 얻을 수 아니에요

, 나는 어느 것과도 일치하기 위해 노력하고있어 괄호 사이 문자열 :

(샘플) 등 (포켓몬) (su54gar99)

...

시도 내가 겪었어요 얼마나 많은 확실하지 않은이 (최신 시도 ... 이 시점에서 ...)

$('.acf').each(function() { 
       var ac = $(this); 
       ac.data('changed', false); 
       ac.data('alias', 'ac-real-'); 
       ac.data('rx', /\s*\(\s+\)\s*/i); 
       ac.data('name', ac.attr('name')); 
       ac.data('id', ac.attr('id')); 
       ac.data('value', ac.val()); 
     }); 

답변

2

\s을 왜 사용하고 있습니까? 그것은 다음과 같은 공백 문자

사용을 정규 표현식과 일치 :

\(.+\) 
+0

게시 한 후 1 분이 지나서 알아 냈습니다. 감사합니다. –

+0

더 정확한 표현식 (이 경우에는'[^()]')이있는 경우에는 점을 사용하지 마십시오. 여러 세트의 괄호가있는 경우'\ (. + \)'식이 실패합니다. lazy dot 버전 :'\ (. +? \)'도 괄호가 중첩되어 있으면 실패합니다. 사용 :'((^) * *)'는 가장 안쪽의 괄호 세트 만 안전하게 일치시킵니다. – ridgerunner

+0

잘못된 것을 바로 잡는 것은 단지 제안이었습니다. 어쨌든 귀하의 의견을 보내 주셔서 감사합니다. – manojlds

1

나는 "\ s는"단지가 아닌 일반 문자, 공백 문자를 의미하는 것이, 당신의 잘못이 좋습니다).

둘째, 각 결과를 찾은 다음 1 개의 결과 이후에 중지하지 않으려면 "글로벌"수정자를 추가하십시오.

이 같은 것을보십시오 :

var text = "(sample) (pokemon) (su54gar99)"; 
var found = text.match(/\s*\(([a-z,0-9]*)\)/ig); 
$.each(found, function(i, v) { 
    alert(i+" = "+v); 
}); 

작품을 적어도 주어진 예제).

방문 : http://www.w3schools.com/jsref/jsref_obj_regexp.asp RegEx를 배우기에 가장 좋은 방법, 내 의견으로는 : P.

+0

저주, 나를 때려. '/^\ (. | \ d *? \) $ /'<- 어떤 낙오? – mattsven