0

我正在使用来自https://github.com/RobinHerbots/jquery.inputmask的 jQuery 输入掩码,并且在 Firefox、Chrome 或 IE 8+ 中没有问题。

但是,当我使用下面的正则表达式输入掩码时,IE 7 只显示数据源中的第一个字符。我知道数据存在,因为如果我将文档模式从 IE 7 标准切换到 IE 8 标准或更高版本,数据会立即可见。

有没有办法让正则表达式输入掩码显示 IE 7 中的所有数据?

$(".alpha").inputmask('Regex', { regex: "[a-zA-Z ]+" }); // Limits entry to letters and space character
$(".name").inputmask('Regex', { regex: "[a-zA-Z-`' ]+" }); // Limits entry to letters, -, `, ' and space character 
$(".alphanumeric").inputmask('Regex', { regex: "[a-zA-Z0-9 ]+" }); // Limits entry to letters, numbers and space character
4

1 回答 1

1

看来这与此处记录的 IE 7 前瞻错误有关http://blog.stevenlevithan.com/archives/regex-lookahead-bug 将上述正则表达式更改为此解决了问题(将 + 替换为 {n,m})

// Due to lookahead bug in IE 7, used {n,m} instead of just +
$(".alpha").inputmask('Regex', { regex: "[a-zA-Z ]{1,50}" }); // Limits entry to letters and space character
$(".name").inputmask('Regex', { regex: "[a-zA-Z-`' ]{1,50}" }); // Limits entry to letters, -, `, ' and space character 
$(".alphanumeric").inputmask('Regex', { regex: "[a-zA-Z0-9 ]{1,50}" }); // Limits entry to letters, numbers and space character
于 2014-01-06T19:19:42.550 回答