$('input').keyup(function(){
if (/^([a-z\d] ?)+[a-z\d]$/i.test(this.value)) {
alert('True');
}
})
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<input type='text' value='Ended with Space '>
在我的脚本中,如果您按 backspace
删除 if 语句触发器中的空格 ,我想防止这种情况发生,我该怎么办那?
最佳答案
$('input').keyup(function (evt) {
if (evt.keyCode === 8) return;
if (/^([a-z\d] ?)+[a-z\d]$/i.test(this.value)) {
alert('True');
}
})
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<input type='text' value='Ended with Space '>
请注意,.keyCode
是 deprecated ,但可能仍然可以在大多数浏览器中工作。 MDN 目前建议使用 KeyboardEvent.code已实现,但在撰写本文时仍部分缺乏浏览器支持。
这是使用 .code
的示例:
$('input').keyup(function (evt) {
if (evt.originalEvent.code === 'Backspace') return
if (/^([a-z\d] ?)+[a-z\d]$/i.test(this.value)) {
alert('True');
}
})
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<input type='text' value='Ended with Space '>
有趣的是,jQuery(至少在上述版本中)不会在事件对象上公开 code
,因此您必须通过 originalEvent
访问它。
最后,为了完整起见,比较 keypress
事件的行为(按注释中的注释):
$('input').keypress(function (evt) {
if (/^([a-z\d] ?)+[a-z\d]$/i.test(this.value)) {
alert('True');
}
})
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<input type='text' value='Ended with Space '>
关于javascript - 如果单词后最后删除的字母是空格,则阻止 if 语句,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47858326/