当前位置: 首页 > 面试题库 >

为什么Angularjs ng-pattern无法与以下正则表达式一起使用?

岑畅
2023-03-14
问题内容

由于某种原因,初始化值不会出现在字段中,但是没有ng-pattern的第二个字段确实起作用。有任何想法吗?

    angular.module('app', []).controller('MainCtrl', function($scope) {
      $scope.widget = {title: 'abc', title2: 'abc'};
    });

    <div ng-app="app" ng-controller="MainCtrl">
     <input ng-model="widget.title" required ng-pattern="/[a-zA-Z]{4}[0-9]{6,6}[a-zA-Z0-9]{3}/">
     <br /><br />   
     input 1: {{ widget.title }}
     <br /><br />   
     <input ng-model="widget.title2" required>
     <br /><br />   
     input 2: {{ widget.title2 }}
    </div>

这是小提琴 http://jsfiddle.net/wkzab/1/


问题答案:

更新

我仔细研究了一下(从未真正使用过Angular),并且通过使用name表单和输入上的属性,您可以捕获一个错误,如我最新的JSFiddle所示。其格式为:{{formName.inputName.$error}}。这将返回参数等于布尔值的对象。所以{{form.title.$error.pattern}}true在有正则表达式(所以你会显示错误)的错误。我还将您的正则表达式清洗(工作原理相同)为:/^[A-Z]{4}\d{6}[A-Z\d]{3}$/i

ng- pattern属性尝试根据此正则表达式匹配字段/[a-zA-Z]{4}[0-9]{6,6}[a-zA-Z0-9]{3}/。这将转换为4个字母字符,6个数字和3个字母数字字符。一旦有了匹配的模式,它将显示出来。

您应该能够删除ng- pattern属性或将表达式更改为不太具体。例如,只要整个字符串是字母数字,此JSFiddle将接受任何值。如果您需要其他模式的帮助,请更新问题。



 类似资料:
  • 问题内容: 在Python 2.6中。似乎字符串末尾的那个标记和不符合组表达式兼容。佛的例子 退货 (因此实际上无效)。并使用 导致错误: 为什么这样工作以及如何解决? 问题答案: 甲表达式是一个 字符组 ,这意味着它会匹配任何一个字符包含在其中。因此,您正在匹配文字字符。字符组始终适用于一个输入字符,因此永远不能包含锚点。 如果要匹配空格字符 或 字符串的结尾,请改用非捕获组,将其与或选择器结合

  • 问题内容: 我正在做一个小的javascript方法,该方法会接收到一个点列表,并且我必须阅读这些点才能在Google地图中创建多边形。 我在表格上收到这些要点: (lat,long),(lat,long),(lat,long) 因此,我完成了以下正则表达式: 我已经使用RegexPal和收到的确切数据进行了测试: 并且它可以正常工作,所以为什么当我在JavaScript中添加此代码后,结果中会收

  • 问题内容: 试图了解正则表达式,我在重复的部分:。 我有以下代码: 如您所见,两个字符串都不匹配该模式。为什么会这样呢? 问题答案: 您不应该在逗号后加空格,这是多余的。

  • 有没有人试图描述与正则表达式匹配的正则表达式? 由于重复的关键字,这个主题几乎不可能在网上找到。 它可能在实际应用程序中不可用,因为支持正则表达式的语言通常具有解析它们的方法,我们可以将其用于验证,以及一种在代码中分隔正则表达式的方法,可用于搜索目的。 但是我仍然想知道匹配所有正则表达式的正则表达式是什么样子的。应该可以写一个。

  • 下面是我正在使用的正则表达式的最新版本,它抛出了错误“Invalid regular expression” XSD:正则表达式在位置4验证失败:当前选项设置不支持此表达式。 我在xsd文件中得到了这个异常,我正在message broker(IIB)中开发这个xsd。有谁能帮我解决这个问题吗?

  • 问题内容: 以下代码是众所周知的将重音符转换为纯文本的代码: 我用这种方法代替了“手工制作”方法,但是我需要了解replaceAll的“ regex”部分 1)什么是“ InCombiningDiacriticalMarks”? 2)它的文档在哪里?(和类似的?) 谢谢。 问题答案: 是Unicode块属性。在JDK7中,您将可以使用两部分表示法来编写它,这对于读者来说可能更清楚。它在UAX#44