【发布时间】:2015-09-03 21:26:28
【问题描述】:
我有一个函数可以检查带有正则表达式字符串的输入框的最大值。 3 个单词和两个空格。
$('input.words_input__input_field').on("keyup", function(e) {
if (e.keyCode == 13) {
send_message();
}
var re = /^((([\'\-\+\s]\s*[a-zA-Z])?[a-zA-Z]*)){3}$/g;
var str = $('input.words_input__input_field').val();
var m;
while ((m = re.exec(str)) !== null) {
if (m.index === re.lastIndex) {
re.lastIndex++;
}
send_text = str;
// View your result using the m-variable.
// eg m[0] etc.
}
console.log(m);
});
当正则表达式应用于输入值时,send_text 将不再被编辑。但我想阻止用户再在输入框中输入内容。
有没有什么方法可以为输入创建一个块,这样用户输入的内容就不能超过正则表达式“允许”的内容?
编辑:我对这个正则表达式有一些问题,所以它工作得太完美了,它只会阻止用户在输入字段中的三个单词和两个空格之后输入。我有这样的代码:
var test = /^((([\'\-\+\s]\s*[a-zA-Z])?[a-zA-Z]*)){3}$/g;
if (test.test($(this).val())) {
$(".input").val($(".input").val().replace(/\s/g, ""));
}
但它会“杀死”所有空格。我只想删除最后的空格。有什么想法吗?
【问题讨论】:
-
你有 jsfiddle 或标记要查看吗?
-
@ZivWeissman 问题已编辑...
标签: javascript jquery html