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