Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/20.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
Angularjs 正则表达式不';无法使用数据绑定_Angularjs_Regex_Data Binding - Fatal编程技术网

Angularjs 正则表达式不';无法使用数据绑定

Angularjs 正则表达式不';无法使用数据绑定,angularjs,regex,data-binding,Angularjs,Regex,Data Binding,我正在用Angular进行验证 <div ng-if="field.required !== 'true'"> <input id="fld-{{field.id}}" name="{{field.id}}" ng-model="$ctrl.configuration[$ctrl.selectedPlatform][field.id]" ng-pattern="{{field.regex}}"> </div> 因此,这基本上与数值匹配,用于测试目的 但

我正在用Angular进行验证

<div ng-if="field.required !== 'true'">
   <input id="fld-{{field.id}}" name="{{field.id}}" ng-model="$ctrl.configuration[$ctrl.selectedPlatform][field.id]" ng-pattern="{{field.regex}}">
</div>
因此,这基本上与数值匹配,用于测试目的

但是,验证未通过,显示ng无效

当我直接写入
ng patter=“/^[+]([0-9]+(?:[\\.][0-9]*)?\\\.[0-9]+$/”
时,验证通过

有人知道为什么吗

更新:

我只希望数值有效,因此我将使用:

/^[+]?([0-9]+(?:[\\.][0-9]*)?|\\.[0-9]+)$/

在HTML和JS代码中定义正则表达式的方式有所不同。如果
ng模式
允许您使用
“/regex here/”
符号和单个反斜杠表示文字反斜杠,那么JS代码不会像您使用C字符串定义字符串那样使用字符串(即,可以使用转义序列的字符串文字)

在这里,您可以使用构造函数初始化(使用字符串)或正则表达式文本

请记住,您需要在字符串文本中使用双反斜杠,在正则表达式文本中使用单反斜杠来表示文本反斜杠(正则表达式转义需要)


应该有用。

你可以尝试使用
“regex”:“*”
@WiktorStribiżew谢谢,有什么更新的想法吗?试试
“regex”:“^[+]?([0-9]+(?:[.][0-9]*)?|[.][0-9]+)$”
。如果成功了,我想你已经知道为什么会这样了。另外,请尝试
“regex:/^\+?([0-9]+(?:\[0-9]*)?\.[0-9]+)$/
@WiktorStribiżew谢谢,这确实有效!你能在回答中解释一下吗?这样我就可以把它标为答案了?
/^[+]?([0-9]+(?:[\\.][0-9]*)?|\\.[0-9]+)$/
"regex": "^\\+?([0-9]+(?:\\.[0-9]*)?|\\.[0-9]+)$"
"regex": /^\+?([0-9]+(?:\.[0-9]*)?|\.[0-9]+)$/