验证我的代码仅使用ASCI |用正则表达式检查

时间:2012-09-08 22:59:10

标签: javascript

IE9给了我一个对语法毫无意义的错误。 missing )

之前是Expected ;上一篇SO here

我没有在任何其他浏览器上看到随机错误,我的代码通过了jslint.com和jshint.com

想要验证我的代码中没有snuck的unicode,因此我将通过正则表达式运行并检查

[\x00-\x7F]

这是一种有效的方法吗?

相关

http://en.wikipedia.org/wiki/ASCII

1 个答案:

答案 0 :(得分:1)

自从我在IE开发以来差不多十年以前,我的内存可能出错了,但我有一个微弱的回忆,IE不喜欢代码中的控制字符(字符低于0x20,除了换行,回车和标签)。

根据您使用的编辑器,可以通过在CTRL之一的同时按@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_来插入控制代码,以获取控制代码0x00 - 0x1f。

如果要使用正则表达式来验证您是否只有可打印的ASCII和允许的控制字符,则可以使用^[\x09\x0a\x0d\x20-\x7e]*$。它允许使用制表符(x09),换行符(x0a),回车符(x0d)和所有可打印的ASCII字符。删除删除(x7f)。

如果您想检测某些东西是不是可打印的ASCII或允许的控制字符,您可以使用[^\x09\x0a\x0d\x20-\x7f]来匹配任何不是标签,换行符,回车符的内容或可打印的ASCII。

在Unicode中有一些新的行终止符:下一行(\ u0085),行分隔符(\ u2028)和段落分隔符(\ u2029)。

许多互联网协议(以及Windows系统上的vanilla文本文件)希望行的结尾用回车符后跟换行符(\0x0d\0x0a)表示,这是从您打印机的那些时代继承而来的希望能够在没有前进到下一行的情况下返回马车,以便能够编写下划线。它也可以用来通过再次打印相同的线条使文本更大胆,或以灰度打印...