Javascript 使用正则表达式在两个单词之间留出空格
我需要阻止除逗号以外的特殊字符。所以我使用下面给出的代码。它正在发挥作用,但同时也在消除两个单词之间的空格Javascript 使用正则表达式在两个单词之间留出空格,javascript,regex,Javascript,Regex,我需要阻止除逗号以外的特殊字符。所以我使用下面给出的代码。它正在发挥作用,但同时也在消除两个单词之间的空格 据我所知,您希望txt框中允许有空格 所以 这是你的 您需要在\w var chars =/[(,\/\w )]/i; $('input').keyup(function(e) { var value = this.value; var char = value[value.length-1]; if(char !== ' ' || value.length==1 || (
据我所知,您希望txt框中允许有空格 所以 这是你的 您需要在
\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
之后添加了空格,因此regexp是var chars=/[(,\/\w)]/i代码>就可用性而言,在用户输入时操纵用户的输入可能非常令人沮丧。此外,如果用户键入的速度足够快,它无论如何也无法工作(如上文所述)
更好的办法是验证用户的输入,并让他们实时知道输入是否无效
请尝试以下代码:
var regex =/^[\w\s\,]*$/i;
$('input').keyup(function(e) {
var message = regex.test(this.value) ? "" : "Error";
$('#message').html(message);
});
您不能在角色类中包含空格吗?i、 例如,[(,\/\w)]/i
(现在以空格开头)。@PA.添加空格确实“有效”,因为他的代码会在输入的最后一个字符与他的regexp不匹配时删除它。虽然他也允许(
,)
和/
。不确定这是否是计划的一部分。如果你打字速度足够快,字符也不会被删除:)也没有理由在这里使用i
修饰符=)@anni我不知道在所有大写字母中打字与词汇有什么关系?
var regex =/^[\w\s\,]*$/i;
$('input').keyup(function(e) {
var message = regex.test(this.value) ? "" : "Error";
$('#message').html(message);
});