2013-10-23 2 views
0

현재 텍스트 영역에 입력 된 URL에서 정규식을 사용하여 www.을 제거하고 있습니다. 나는이에게 다음과 같은 방법을 수행 ahve :정규식이 정규식을 만족하지 못합니다

var input = document.getElementById("tweet_text"); 
input.onkeyup = function() { 
    input.value = input.value.replace(/www\.*/,""); 
} 

URL이 텍스트 영역에 복사 후 붙여 넣기하면, 정규식이 직업 않습니다.

수동으로 URL을 입력하면 .이 삭제되지 않습니다. 나는 마지막으로 w에 도착하고 나서 www이 제거되어 계속 타이핑 할 수있게 해줍니다. 물론 다음 문자가 유지됩니다 ., 그리고 이런 일에 종료됩니다 : 그것은 다음과 같이해야 할 때

http://.example.com 

가 :

http://example.com 

에 대한 모든 아이디어를 어떻게이 문제를 해결하려면?

+1

(www/./ g, '') –

답변

2

. 따라서 www\.*www과 일치하고 바꿉니다. 그리고 나서 .을 입력하면 패턴과 일치하지 않으므로 바뀌지 않습니다.

대신 www\.+ 또는 www\.를 사용해보십시오 :

input.value = input.value.replace(/www\.+/,""); 

또는 : 당신이 onKeyUp에 이벤트에 매여 있기 때문에

input.value = input.value.replace(/www\./,""); 
+0

input.value = input.value.replace (/ www \. + /, "") 좋다. 고마워! – danyo

+0

@danyo 환영합니다 :) –

1

이 대체 기능이 작동됩니다 .* 또한 빈 공간 (0 개 이상 반복) 일치하기 때문에 무슨 일이 일어나고 그

input.value = input.value.replace(/(^|\/)www\./i, "$1"); 
+0

나는 OP가 www가 단어의 시작 부분에 있기를 바랄 것이라고 생각하지 않습니다. – mavrosxristoforos

+0

@mavrosxristoforos : Alright가 코드를 편집했습니다. – anubhava

0

이입니다. 대신 onblur를 사용하도록 변경하십시오. 그것은 당신의 문제를 해결해야합니다.

관련 문제