键入特殊字符时显示非匹配下拉列表选择列表!和@

时间:2016-06-16 16:28:28

标签: angularjs angular-ui-bootstrap angular-bootstrap

在键入!!(两次!或四次!)和!@(组合)时,角度bootstrap ui打印头显示下拉结果时遇到问题。我尝试添加过滤器,但过滤器没有正常工作只显示缓存中的值左右。我想如果用户键入任何特殊字符,它不会显示任何建议

plunker https://plnkr.co/edit/E0IiqNTsgp0sP5Yggyau?p=preview enter image description here

在控制器中过滤

 $scope.startsWith = function (state, viewValue) {
            //var pattern = new RegExp(/[~`!@#$%\^&*+=\-\[\]\\';,/{}|\\":<>\?]/); //unacceptable chars
            var pattern = /^[a-zA-Z ]*$/;
            if ((pattern.test(viewValue))) {
                return true; 
           }
        }
  $scope.states= ['Alabama','california','Texas'];

HTML

<input type="text" uib-typeahead="state for state in states | filter:$viewValue:startsWith | limitTo:3" autocomplete="off" >

我应该做什么改变,当使用类型任何时候特殊字符喜欢!!要么 !!!!或!@或任何像阻止显示非匹配结果的东西。

我尝试了所有其他事情让它工作但不是。感谢有些人可以立即回复

1 个答案:

答案 0 :(得分:0)

var pattern = /^[a-zA-Z]*$/;应该做的伎俩,只匹配单词。也许您需要阻止用户输入特殊字符,例如:

<input type="text" pattern="[A-Za-z]" />