【发布时间】:2010-03-17 20:33:54
【问题描述】:
我正在清理输入字段并在此过程中手动获取和设置插入符号位置。有了一些抽象,这是基本的想法:
<input type="text" onkeyup"check(this)">
还有 javascript...
function check(element) {
var charPosition = getCaretPosition(element);
$(element).val( sanitize( $(element).val() ) );
setCaretPosition(element, charPosition);
}
function sanitize(s) {
return s.replace(/[^a-zA-Z0-9\s]/g, '');
}
这很好用,除非一个角色确实被清理了,我的插入符号位置偏离了一个。基本上我想要一种方法来查看 sanitize 函数是否真的替换了一个字符(以及在什么索引处),这样我就可以在必要时调整 charPosition 。有什么想法吗?
【问题讨论】:
-
如果您已经在使用 jQuery,则没有理由突兀地附加您的事件处理程序。相反,您应该在 JavaScript 中附加 onkeyup even 处理程序。
-
其实是有原因的。这是针对 IE6 的大型 Web 应用程序(不幸的是),并且对 jQuery document.ready 有巨大的性能影响(在某些页面上超过 4 秒)。所以我试图从 document.ready 中提取尽可能多的东西。 (另外,这是一个需要 javascript 的 Intranet 应用程序,因此不需要担心突兀)
标签: javascript jquery regex