Regex 角度2表单验证模式正则表达式错误

Regex 角度2表单验证模式正则表达式错误,regex,forms,angular,validation,design-patterns,Regex,Forms,Angular,Validation,Design Patterns,我正在angular中创建一个表单,它要求name字段只包含字母数字字符和空格。为此,我使用pattern属性: <input type="text" class="form-control" placeholder="Name" name="Name" [(ngModel)]="name" required pattern="/^[a-z\d-_\s]+$/i" #nameField="ngModel"> 当字符串不匹配时,我要显示以下错误消息: <div *ngIf=

我正在angular中创建一个表单,它要求name字段只包含字母数字字符和空格。为此,我使用pattern属性:

<input type="text" class="form-control" placeholder="Name" name="Name" [(ngModel)]="name" required pattern="/^[a-z\d-_\s]+$/i" #nameField="ngModel">

当字符串不匹配时,我要显示以下错误消息:

<div *ngIf="nameField.errors">
   <div [hidden]="!nameField.errors.pattern">
       <p class="has-error">
          Only spaces, letters, and numbers are allowed.
       </p>
   </div>
</div>

只允许使用空格、字母和数字。


然而,似乎即使字符串应该与正则表达式匹配,我仍然可以看到错误消息。有什么想法吗?

我想这里的问题是正则表达式的语法格式不正确:

 <form novalidate #f="ngForm" novalidate>
    <input type="text" 
    class="form-control" 
    placeholder="Name" name="Name" 
    [(ngModel)]="name" 
    required pattern="^[A-Z\\a-z\\d-_\\s]+$" 
    #nameField="ngModel" >
    <div>
      <div *ngIf="nameField.errors?.pattern">
        <p class="has-error">
          Only spaces, letters, and numbers are allowed.
        </p>
        hame: {{nameField.errors | json}}
     </div>
    </div>
  </form>

只允许使用空格、字母和数字。

hame:{{nameField.errors | json}
看看这个你可以用的

pattern="^[\w\s-]+$"
[A-Za-z\d\u]
与JavaScript原生正则表达式中的
\w
匹配相同的字符。因此,整个模式匹配一个或多个ASCII字母、数字、下划线、连字符或空格


请注意,默认情况下,angular锚定模式,但最好在模式中保持锚定
^
$
的明确性,以使其与任何其他框架兼容。

我认为应该是这样的:Try
pattern=“^[\w\s-]+$”
感谢您简洁的回答。这正是我要找的。你能帮我解决这个@wiktorstribizews问题吗?谢谢你的帮助。当你的答案有效时,下面的答案是:你在我的具体案例中表现得更好一些,所以我把它标记为答案。