我在一些“用户名”字段中看到过,您在其中键入用户名,在用户名下方,如“ span”一样,它将用户名附加到网址中.就像我在底部的StackOverflow中键入此内容一样.
我只想显示列表中允许的字符,而忽略不在该列表中的任何字符输入.
我真的是JS新手.在这种情况下,我正在使用Jquery,并且对某些部分进行了某种工作,而其他部分则没有,或者我还没有到达那里.
欲望:
输入表单字段仅接受列表中的字符,其他字符将被忽略.
获取输入的新密钥,并将其附加到元素.
这是我到目前为止的一团糟:
<script type="text/javascript" charset="utf-8">
$(document).ready(function() {
$('#cart-name').keyup(function(e) {
var entered = $('#cart-name').val();
entered = entered.toUpperCase();
var allowed = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789-_';
// fromCharCode always returns uppercase?
var entered_char = String.fromCharCode(e.which);
console.log('You entered: ' + entered_char);
var pos = allowed.indexOf(entered_char);
console.log('position is: ' + pos);
if (pos <= 0) {
console.log('does not contain');
} else {
console.log('contains');
}
$('#live').text(entered);
console.log(entered);
});
});
</script>
在html中,我有:
<input type="text" name="cart_name" value="" id="cart-name" autocomplete="off" />
<br />
http://example.com/
<span id="live"></span>
<br />
最佳答案
为什么不使用常规exprsession替换非字母数字字符?
原文链接:https://www.f2er.com/jquery/530927.htmlentered = entered.replace(/[^a-zA-Z 0-9]+/g,'');