2014-05-08 3 views
0

기본적으로 특정 문자열을 찾는 Javascript에서 정규식을 작성하려고하지만 해당 문자열에 숫자가 포함되어 있으면 일치시키지 않습니다. 설명하기가 어렵 기 때문에 예제가 더 좋을 것입니다.숫자가없는 경우에만 줄을 캡처하십시오.

문자열 :
ㅋ ㅋ ㅋ ㅋ ㅋ ㅋ
ㅋ 233 ㅋ

경기 : ㅋ ㅋ ㅋ ㅋ ㅋ ㅋ
일치하지 마십시오 ㅋ 233 ㅋ ㅋ

을 내가 부정적인 lookaheads, 그것을 얻기 위해 다른 방법을 시도 작동하지만 그것은 내가 정규식으로 매우 경험이 없기 때문에 내가 어떻게 작동하게 할 것인가에 대한 저의 것 이상입니다. 단순히 충분히

답변

2

당신은이 표현을 사용하여 각 라인을 일치시킬 수 있습니다 Demo

표현식이 한 줄과 일치하므로 모든 문자가 숫자가 아닙니다. /m 수정자는 ^$을 각각의 행의 시작과 끝 (피사체 전체와 반대)과 일치시킵니다.

0

:

js> s = "ao123eu"; 
"ao123eu" 
js> if (s.match(/\d/) === null) { print("has no number"); } else { print("has number") } 
has number 

js> s = "aoeu"; 
"aoeu" 
js> if (s.match(/\d/) === null) { print("has no number"); } else { print("has number") } 
has no number 

내가 \d에 대해 문자열에 정확히 한 번만 나타나는 숫자와 일치한다하고있어 모든.

그리고 당신은 그것을 기능을 할 수 있습니다 : 문자열에 숫자가 있다면 true를 돌려

function has_number(s) { 
    return s.match(/\d/) !== null; 
} 

합니다. 이제 당신은 대체 수행하려는 경우

, 당신이 할 수 있습니다

function remove_numbers(s) { 
    return s.replace(/\d+/g, "\\_o<") 
} 

주는 :

var re = /^\D*$/mg, 
line; 

while ((line = re.exec(str)) !== null) { 
    console.log(line); 
} 

:

js> print(remove_numbers("ao234u 42 ao1234eu")) 
ao\_o<u \_o< ao\_o<eu 
+0

많은 문자열을 대체 할 문자열을 사용하려고합니다. 적절하지 않다고 생각합니다. – auragar

+0

사소한 점 : 당신이 * + any * 숫자가 일치를 무효로 할 필요가있는'+'필요가 없다. – usr2564301

+1

글쎄, 난 네 질문에 대답하고있어, 내가 네게 준 작품들! 제 대답이 당신이 필요로하는 것과 일치하지 않으면 또 다른 질문을하십시오! – zmo

관련 문제