我需要阻止除逗号之外的特殊字符。所以我使用下面给出的代码。它正在工作,但它也消除了两个单词之间的空间。 fiddle
var chars =/[(,\/\w)]/i;
$('input').keyup(function(e) {
var value = this.value;
var char = value[value.length-1];
if(char !== ' ' || value.length==1 || (value[value.length-2]!==' ' )){
if (!chars.test(char)) {
$(this).val(value.substring(0, value.length-1));
}
}
});
答案 0 :(得分:2)
就可用性而言,在用户输入时操纵用户的输入可能非常令人沮丧。此外,如果用户输入的速度足够快,则无论如何都不起作用(如上文Daniel Knippers所述)
更好的选择是验证用户的输入,并让他们实时知道输入是否无效。
试试这段代码:
var regex =/^[\w\s\,]*$/i;
$('input').keyup(function(e) {
var message = regex.test(this.value) ? "" : "Error";
$('#message').html(message);
});
答案 1 :(得分:0)
据我了解,您希望在txt框中允许该空格 所以,
这是您的ANSWER
您需要在\w
var chars =/[(,\/\w )]/i;
$('input').keyup(function(e) {
var value = this.value;
var char = value[value.length-1];
if(char !== ' ' || value.length==1 || (value[value.length-2]!==' ' )){
if (!chars.test(char)) {
$(this).val(value.substring(0, value.length-1));
}
}
});
请注意我在\w
之后添加了空格,因此正则表达式为var chars =/[(,\/\w )]/i;