【问题标题】:Check if the entire String value in Textbox is zero(0) or of special characters检查文本框中的整个字符串值是否为零(0)或特殊字符
【发布时间】:2017-02-22 02:36:50
【问题描述】:

我有一个文本框,我在其中获取长度为 20 的文本类型的输入,我有一个场景,我必须评估从客户端输入的整个字符串是否不为零或任何特殊字符

例如:00000000000,00000,00,00000,00000/-/--,/-/-----////,aBadf-018---///sdf484,AA///---000 以上所有这些输入都是无效的,字符串可以是 2 到 20 之间的任意长度,

我已限制用户输入除连字符和破折号以外的其他特殊字符, 此处用于使连字符和破折号以外的值无效的正则表达式如下:

" /[^a-zA-Z0-9/-]/g "

<input type="text" name="consumer_number" maxlength="25" ng-disabled="!form_data[selectedTab].electrici‌​ty.check" alpha-numeric-with-slash-and-hyphen data-ng-model="form_data[selectedTab].electric‌​ity.unique_no" class="input-field" data-ng-blur="validateElecConsumer(selectedTab‌​)" ng-class="{true:'invalid-field',false:''}[form‌​_data[selectedTab].e‌​lectricity.check && form_data[selectedTab].invalid.electricity]" required /> 

现在我担心的是,我怎么能预先显示一条消息,说明用户提供的任何输入都是无效的。

【问题讨论】:

  • 你能分享一下你迄今为止尝试过的代码吗?
  • 你试过ng-pattern吗?
  • 您可以设置一个布尔值/标志。因此,当您遇到无效案例时,请将其设置为 false。例如:$scope.isValid = false。而且您可以在 html 中的 $scope.isValid 上使用 ng-if 来显示您想要的内容。无论如何,请分享您目前拥有的代码,以便我们为您提供更多帮助
  • @LL 对这个未格式化的代码感到抱歉,但这是我最好的选择。你可以参考这个 plunker plnkr.co/edit/lSVuhUIA7dOwOd0puhqO?p=catalogue| 不,我没有使用 ng-pattern,尽管我已经编写了自己的指令。
  • 在输入中设置你的输入 ng-model="someValue" 和你的 ng-pattern 和你的验证消息到
    输入文本不正确
    就在下面。将 input 和 div msg 都包装在一个封闭的 div 中以获得更清晰的外观,所以 &lt;div&gt;&lt;input maxlength="20" type="text" ng-model="someValue" ng-pattern="/^[a-zA-Z0-9\-]*$/" ng-reguired="true"/&gt;&lt;div ng-show="someValue.$error.pattern"&gt; Input is incorrect&lt;/div&gt;

标签: javascript angularjs html angularjs-directive


【解决方案1】:

这可能会有所帮助:

var app = angular.module("app", []);

app.controller("MyController", function($scope){
  $scope.inputtext = "";
  $scope.onSubmit = function() {
    var val = $scope.inputtext;
    if (val.length < 2 
        || val.length > 20 
        || !val.match(/[^a-zA-Z0-9/-]/g)) {
      alert("Unacceptable");
    } else {
      alert("you pass");
    }
  };

});
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.23/angular.min.js"></script>

<div ng-app="app" ng-controller="MyController">
  <input  maxlength="20" 
      id="inputtext" 
      ng-model="inputtext" type="text"/>
  <button id="submitbutton" ng-click="onSubmit()" type="text">submit</button>
</div>

【讨论】:

  • 这有效,但仅在单击提交时验证,如果您想即时执行,您可以使用函数调用 onSubmit() 执行两件事之一 ng-focus ,或者您可以应用有错误的 div基于输入字段中的 ng-pattern 具有 ng-show="inputtext.$error.pattern" 的消息
  • @DrMints 你能帮我解决这个问题吗,比如 plunker 或 jsfiddle。等待您的回复,实际上现在要求已经改变,消息应该在输入时提示,而不是在任何点击事件上。提前感谢
猜你喜欢
  • 2015-11-04
  • 1970-01-01
  • 2010-12-20
  • 2016-08-24
  • 2022-08-11
  • 2014-11-25
  • 2020-03-15
  • 2016-08-01
  • 2011-05-29
相关资源
最近更新 更多