gpt4 book ai didi

regex - ngPattern 指令的问题

转载 作者:行者123 更新时间:2023-12-04 17:37:07 25 4
gpt4 key购买 nike

我有这个代码:

<form name="test">
<input type="text" ng-model="code" name="code" ng-pattern="/^code_[0-9]+$/"/>
<div ng-show="test.code.$dirty && test.code.$invalid">
Error:
<span ng-show="test.code.$error.pattern">Pattern fail.</span>
</div>
</form>
这段代码有两个问题:
  • 像“code_232”、“code_232”、“code_232”这样的字符串通过验证。我不是正则表达式的专家,所以这可能是一个与我写的正则表达式相关的问题:/^code_[0-9]+$/
  • 如果我开始写“code_23892”(一个正确的字符串),我会收到错误
    我还在写的时候发消息 ( test.code.$error.pattern = true )。有没有内置的方法来避免这种情况?所以我想要的行为是:

  • If i write "cod", and the input has still focus: no error

    If i write "cod" and the input loses focus: error.

    If i write "a", "ca", "coa" etc.: error, cause the pattern is already violated.


    这是否已经可能,或者我已经编写了一个客户验证指令来实现这一目标?
    提前致谢。

    最佳答案

    空格不会触发验证失败的原因是 ng-model 会自动修剪该值。如果你不想那样,你可以添加 ng-trim="false"给您的 <input /> .请注意,ng-trim 是一个相当新的属性,因此您可能需要更新您的 Angular 版本。

    关于你的第二个问题;我认为您无法避免在键入期间运行验证,但您可以更改代码以仅在输入失去焦点时显示错误。我不认为类似 ng-blurng-focus存在,但实现它们应该非常简单。

    关于regex - ngPattern 指令的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15005567/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com