2016-11-29 129 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

下面是java腳本以刪除非ASCII字符。但是,它不適合我。

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); 

每當我試圖顯示我從HTML收到的價值,"&#8203;&#8203;PMUE4526AAAAAA"它顯示這樣。所以,我的Java腳本程序認爲"&#8203;"(7個字符),而不是一個特殊字符。

請幫我解決這個問題。

+0

它看起來像你的用戶正在輸入HTML,而不是實際的字符。 – Bergi

+0

@Bergi,用戶通過HTML進入。我只是想刪除那些非寬度的字符進一步處理。請幫我刪除HTML源代碼中的特殊字符。 – msiva1989

+0

'.value'不讀取HTML源,而是DOM的屬性 - 實際的用戶輸入。 – Bergi

回答

1

與此正則表達式中嘗試替換:/([^ \ x00- \ 0x7F部分] | &#[0-9] +)/ G

+0

這是一個兔子洞。例如,對於同一個字符也有'&#x200b;'。 – Ouroborus

+0

@kj_現在,特殊字符被刪除。謝謝你的幫助。 – msiva1989

+0

@ msiva1989我懷疑你明天會遇到同樣的問題。它將是「&#x200b;&#x200b; PMUE4526AAAAAA」。 – Ouroborus