如何使用角度验证自定义验证模式中的文本

Posted

技术标签:

【中文标题】如何使用角度验证自定义验证模式中的文本【英文标题】:how to validate text in custom validate patterns using angular 【发布时间】:2019-03-30 20:05:01 【问题描述】:

我想仅使用此模式~*\|:"<>?/ 验证文本。下面是我的文本框

<input type="text" [(ngModel)] ="newReferenceValue"  #referencevar="ngModel" name="referencevar" (keyup.enter)="save()" pattern='^[^`~!@#$%\^&*()_+=|[\]\\:"]*$' style="margin: 8px;width: 60%;">

 <div *ngIf="referencevar.errors?.pattern">
         not valid not partens  
  </div>

【问题讨论】:

您尝试过 ng 表单吗? 不,我只尝试两种方式绑定。错误消息显示但我不能只验证这个 ~*\|:"?/ text 我想创建正确的正则表达式模式='^[^`~!@#$%\^&*()_+=|[]\\:"]*$' 尝试 Angular 表单或 ngforms,这样它就可以作为 html 验证 【参考方案1】:

你用这种方式

html

<input type="text" [(ngModel)] ="newReferenceValue"  #referencevar="ngModel" name="referencevar" (keyup.enter)="save()" [pattern]="pattern" style="margin: 8px;width: 60%;">

 <div *ngIf="referencevar.errors?.pattern">
         not valid not partens  
  </div>

ts

pattern = '^[^`~!@#$%\^&*()_+=|[\]\\:"]*$';

但是,使用模式的最佳方式是使用反应形式, 您可以参考此link 以获得更多了解。

【讨论】:

我只想验证这个 ~*\|:"?/ .如何只验证这个? 你可以使用这个正则表达式'^[~*\|:"&lt;&gt;?/]*$' 您遇到的错误是什么?不工作是什么意思?【参考方案2】:

这是一个可以帮助您的示例,如果您有任何疑问,请在 cmets 中询问我

    <form role="form" name="form" (ngSubmit)="f.form.valid" #f="ngForm" novalidate>

    <input type="text" id="newReferenceValue" name="newReferenceValue" [(ngModel)] ="newReferenceValue"  #referencevar="ngModel" pattern="^[^`~!@#$%\^&*()_+=|[\]\\:"]*$" (keyup.enter)="save()" [ngClass]=" 'is-invalid': f.submitted && referencevar.invalid " style="margin: 8px;width: 60%;">

<div *ngIf="f.submitted && referencevar.invalid" class="invalid-feedback">

 <div *ngIf="referencevar.errors.pattern" class="error"> not valid not partens</div>
                                                                     </div>

    </form>

【讨论】:

我不习惯检查所有模式="^[^`~!@#$%\^&*()_+=|[]\\:"]*$ " 我只想检查 ~*\|:"?/ 你能举个例子吗?【参考方案3】:

我正在使用这个正则表达式模式^[^~*\\|&gt;:"?&lt;/"]*$ 工作正常

<input type="text" [(ngModel)] ="newReferenceValue"  #referencevar="ngModel" name="referencevar"  maxlength="textLengthValue" (keyup.enter)="save()" pattern='^[^~*\\|>:"?</"]*$' style="margin: 8px;width: 60%;">
 <div *ngIf="referencevar.errors?.pattern">
 Using ~*\|:"<>?/ reference value not applicabale  
 </div> 

【讨论】:

以上是关于如何使用角度验证自定义验证模式中的文本的主要内容,如果未能解决你的问题,请参考以下文章

AngularJS自定义验证指令 - 如何避免使用隔离范围

如何使用自定义策略模式实现 jwt 令牌基础身份验证以在 .net 核心中进行授权?

如何以角度停止输入类型=“文本”字段中的字符

使用三个文本框进行自定义验证

ASP.Net MVC:如何自定义验证消息显示

如何验证空格/空格? [角度 2]