Javascript根据所需的字符集验证用户输入(编码)

时间:2011-08-18 21:11:40

标签: javascript validation character-encoding

方案如下:

用户使用Win-1252编码为其字符集从网站复制文本。然后将此文本发送到我使用ISO-8859-1字符集控制的数据库(这是Win-1252的子集)。 Javascript中是否有一种机制可以通知用户他们正试图在系统中插入“无效”字符?如果它可以突出显示所述字符的偏好。

此问题的一般形式是系统A(发送系统)具有定义为AsubE的一组编码,而不同的系统B(接受系统)具有定义为{{1的一组编码}}。当BsubE位于BsubE的范围内时,这不是问题。问题是AsubE何时不是BsubE的子集,我们如何验证用户的输入。

2 个答案:

答案 0 :(得分:3)

由于子集中未定义某些字符,因此您可以使用正则表达式来定义这些间隔:

function isNotAllowed(char) {
    return /\x00-\x1f|\x7f-\x9f/.test(char); // 00 to 1f, or 7f to 9f
}

要突出显示字符,它会变得更复杂,但这个功能可能是它的核心。

答案 1 :(得分:1)

JavaScript中没有设施可以做到这一点。幸运的是,Windows-1252或ISO-8859-1都不是可变宽度编码,所以你可以用.NET编写一些东西,或者做一些理解字符编码的东西来制作正则表达式来测试它。

例如,在.NET中,您可以创建一个256字节的字节数组,每个字符一个,然后使用每个编码来获取相应的字符串。弄清楚这些字符串的差异,将它们编码为正则表达式,然后就可以了。

相关问题