2011-11-05 3 views
3

이것은 나를 미치게합니다. 왜 이것이 작동하지 않는 이유가 무엇입니까?jquery와 정규 표현식 일치 텍스트 교체

var name = data.match(/first-([A-Za-z0-9-]+)/g).replace('first-', ''); 

나는 joefirst-joe를 교체합니다.

는 또한
var name = data.match(/first-([A-Za-z0-9-]+)/g); 
var name = name.replace('first-', ''); 

을 시도하고 작동하지 않습니다.

은 그러나 경고 이름 난

그 이유는 무엇입니까 first-joe를 얻을이며 어떻게 해결합니까?

답변

1

match은 일치 (괄호 문자열 제외)의 배열을 반환합니다. 정확히 일치하는 항목이 하나있는 경우 괄호로 묶은 부분 문자열을 추출하는 data.match(/first-([A-Za-z0-9-]+)/)[1]을 사용하십시오.

+0

알겠습니다. 다음에 그 사실을 기억합니다. 그것은 작동합니다, 고마워요! –

3

대신이 시도

감사합니다 : 개별적 replace 그들에게 것 때문에 /g

var name = data.replace(/first-([A-Za-z0-9-]+)/g, '$1'); 
+0

데이터는 GET 요청의 내용입니다.이 경우 소스를 알려주므로 –

1

나는 왜 당신이 먼저 성냥을 부르는 지 모르겠습니다. 왜 단순히 이들 중 하나를하지 않습니까?

var name1 = data.replace('first-', ''); 
var name2 = data.replace(/^first-/, ''); //In case somebodys got a name containing first-. 

데이터 변수에 'first-joe'문자열 이상이 포함되어 있습니까?