2016-11-29 14 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文字を削除するには、Javaスクリプトです。しかし、それは私のために働いていない。私は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"それはそのように示しています。そのため、私のJavaスクリプトプログラムでは、特殊文字ではなく、"&#8203;"(7文字)とみなしています。

問題を解決するのを手伝ってください。

+0

文字。 – Bergi

+0

@Bergi、ユーザーはHTMLで入力しています。私はちょうどさらに処理するためにそれらの非幅の文字を削除したいと思った。 HTMLソースからフィードされた特殊文字を削除してください。 – msiva1989

+0

'.value'はHTMLソースを読み込みませんが、実際のユーザー入力であるDOMのプロパティを読み込みます。 – Bergi

答えて

1

置き換えるには、この正規表現を試してみてください:/([^ \ x00- \ x7F] | &#[0-9] +;)あなたのユーザーは、実際、HTMLにない入っているように見えます/ gで

+0

これはウサギの穴です。例えば、同じ文字に対しては '&#x200b; 'もあります。 – Ouroborus

+0

@kj_今、特殊文字が削除されました。ご協力いただきありがとうございます。 – msiva1989

+0

@ msiva1989明日も同じ問題があると思う。代わりに "&#x200b;&#x200b; PMUE4526AAAAAA"になります。 – Ouroborus

関連する問題