2016-11-29 3 views
0

아래는 사용자가 입력 한 HTML 코드입니다. 사용자는 (제로 폭 특수 문자를 갖는) 모델 이름을 입력비 폭 특수 문자 제거

<HTML> 
<BODY> 
<FORM METHOD=POST onSubmit="javascript:return(exa(this.form.model.value))"> 

<INPUT TYPE=TEXT NAME=MODEL VALUE=""> 
<INPUT TYPE=SUBMIT NAME=SUBMIT VALUE="Next"> 

</FORM> 
</BODY> 
</HTML> 

-> PMUE4526AAAAAA 아래

는 비 ASCII 문자를 제거하는 자바 스크립트입니다. 그러나 그것은 나를 위해 일하지 않습니다. 나는 HTML에서받은 값을 표시하려고 할 때마다

function exa(myString) 
{ 
    alert("String: "+myString);alert("String_length: "+myString.length); 
    myString= myString.replace(/[^\x20-\x7e]/g,''); 
    alert("String: "+myString);alert("String_length: "+myString.length); 

, "&#8203;&#8203;PMUE4526AAAAAA"은 그렇게 보여주는 것. 따라서 자바 스크립트 프로그램에서는 특수 문자가 아닌 "&#8203;" (7 자)을 고려합니다.

문제를 해결하는 데 도움을주십시오. 이 정규식과

+0

, 실제하지 문자. – Bergi

+0

@Bergi, 사용자가 HTML을 통해 입력하고 있습니다. 방금 처리 할 폭이 아닌 문자를 제거하려고했습니다. HTML 소스에서 피드 된 특수 문자를 제거하도록 도와주세요. – msiva1989

+0

'.value'는 HTML 소스를 읽지 않고 실제 사용자 입력 인 DOM의 속성을 읽습니다. – Bergi

답변

1

시도 바꾸기 :/([^ \ x00- \ x7F] | & # [0-9] +)/g

사용자가 HTML에 들어갈 것 같습니다
+0

그건 토끼의 구멍이야. 예를 들어, 같은 문자에 대해서도'& # x200b; '가 있습니다. – Ouroborus

+0

@kj_ 이제 특수 문자가 제거되었습니다. 당신의 도움을 주셔서 감사합니다. – msiva1989

+0

@ msiva1989 내일 동일한 문제가 발생할 것으로 생각됩니다. 대신 "& # x200b; & # x200b; PMUE4526AAAAAA"가 표시됩니다. – Ouroborus