Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angularjs/25.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript Don';不允许用户键入管道字符'|';以输入形式AngularJS_Javascript_Angularjs_Regex - Fatal编程技术网

Javascript Don';不允许用户键入管道字符'|';以输入形式AngularJS

Javascript Don';不允许用户键入管道字符'|';以输入形式AngularJS,javascript,angularjs,regex,Javascript,Angularjs,Regex,我知道ng模式可以用来允许字符。我正在寻找一种方法来限制一个特定的字符 我的输入框应该可以使用垂直条“|”以外的任何字符。我想抛出一个错误,只是不允许它被打印出来。有没有一个简单的方法,就是不允许特定的字符。或者我应该只使用ng模式来包括除了竖条以外的所有内容吗?(我该怎么做?) 我的html: <td class="col-xs-3"> <input type="text"

我知道ng模式可以用来允许字符。我正在寻找一种方法来限制一个特定的字符

我的输入框应该可以使用垂直条“|”以外的任何字符。我想抛出一个错误,只是不允许它被打印出来。有没有一个简单的方法,就是不允许特定的字符。或者我应该只使用ng模式来包括除了竖条以外的所有内容吗?(我该怎么做?)

我的html:

                     <td class="col-xs-3">
                        <input type="text"
                              name="Application"
                              ng-model="list.Application"
                              maxlength="64"
                              required />

                           <div ng-messages="addForm.Application.$error"
                                 ng-if="addForm.$submitted"

                        </div>
                    </td>

您需要在
输入中添加一个
,并使用一个限制文本输入的正则表达式

此正则表达式必须与文本匹配,因此,需要检查完整输入是否没有管道符号

你需要:

  • ^
    -字符串的开头
  • [^ |]*
    -零个或多个符号,而非
    (将
    *
    替换为
    +
    以禁止空输入)
  • $
    -字符串结束
因此,使用

ng-pattern="/^[^|]*$/"
/…/
是正则表达式分隔符,它可以让angular知道我们传递的是正则表达式对象而不是字符串


另外,
ng-pattern=“[^ |]*”
也应该工作,因为默认情况下,字符串模式是以角度锚定的。

ng-pattern
可以非常简单:)我如何使用ng-pattern不允许垂直条?这是否意味着我必须使用ng模式来允许除此之外的所有可能的字符?有更好的方法吗?否定字符类有什么问题?使用一个。如果您需要更具体的帮助,请使用您尝试的正则表达式模式更新问题。@WiktorStribiżew我不知道任何正则表达式。我应该使用什么正则表达式来允许除|