0

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

以前是Expected ;以前的 SO 帖子在这里

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

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

[\x00-\x7F]

这是一种有效的方法吗?

有关的

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

4

1 回答 1

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

许多 Internet 协议(以及 Windows 系统上的普通文本文件)期望行尾用回车符后跟换行符 ( \0x0d\0x0a) 来指示,这是从您希望能够仅返回不前进到下一行,例如能够写下划线。它还可以通过再次打印同一行来使文本更粗,或者以灰度打印...

于 2012-09-09T00:16:08.953 回答