0

我正在寻找一个代码,当用户键入两个连续的空格时,自动完成功能被关闭。现在,如果“#”不存在,自动完成功能也会关闭。

这是我的代码:

// "post-input" is text-area element
var input = $("#post-input");

if (input.val().search("#") === -1 ){
     var blankResult = [];
     input.autocomplete({
         source: blankResult 
     });
     input.attr('autocomplete','off');
}

如您所见,这可行,但现在我想添加第二个“功能”:如果用户键入两个空格(连续),则自动完成将被禁用。我可以做类似的事情input.val().search("#") === -1 || input.val().search(" ") === 2吗?

注意:我知道上面的代码永远不会是真的,但我的意思是做类似这一行的事情。

4

1 回答 1

1

使用正则表达式匹配两个空格/ /g

if (input.val().search("#") === -1 || (/  /g.test(input.val()))) {
    //code here
}

阅读RegExp 测试

用于匹配最后两个字符

var last2 = input.val().slice(-2); //gets last two characters of string
if (input.val().search("#") === -1 || (/  /g.test(last2))) {
    //code here
}

或者

var last2 = input.val().slice(-2); //gets last two characters of string
if (input.val().search("#") === -1 || last2 = '  ') {
    //code here
}

读取.slice()

于 2013-10-16T01:51:54.930 回答