为什么我的连字符替换为""在我的JavaScript中?

时间:2015-08-10 09:56:53

标签: javascript java html escaping

我使用下面的java脚本来转义几个字符,如"<>()' /"用""。但它正在取代" - "同样。任何人都可以告诉我发生了什么。

    <td colspan=1><input type="text" id="firstName" name="firstName"  onchange="return escapeSpecialCharacters(this);"
    value="<%=(clientInfo != null) ? escape(clientInfo.getFirstName()) :   ""%>" size="30" maxlength="25"></td>

我的javascript如下

private String escapeSpecialCharacters(String value) {
    value = value.replace("<","");
    value = value.replace(">","");
    value = value.replace("(","");
    value = value.replace(")","");
    value = value.replace("'","");
    value = value.replace("/","");  
    return value;
}

public String escape(String value) {
    return StringEscapeUtils.escapeHtml(value);
}

我尝试更换&#34; ISO-8859-1&#34;使用&#39; UTF-8&#39;但它对我不起作用..

1 个答案:

答案 0 :(得分:0)

escapeSpecialCharacters应该可以正常工作。即使它被编写为Java方法,相同的代码也应该在JavaScript中正常工作。例如,在下面的html中,当您更改文本值时,它会保留-(连字符)并删除其他符号。

<html>
<head>
    <script>
    function escapeSpecialCharacters(obj) {
        var value = obj.value;
        value = value.replace("<","");
        value = value.replace(">","");
        value = value.replace("(","");
        value = value.replace(")","");
        value = value.replace("'","");
        value = value.replace("/","");
        obj.value = value;
    }
    </script>
</head>
<body>
    <input type="text" id="firstName" name="firstName"  onchange="return escapeSpecialCharacters(this);" size="30" maxlength="25">
</body>
</html>