我从 API 获取我的正则表达式,它们通常以 ^ 开头并以 $ 结尾(例如^-?[0-9]+$
)。只需将正则表达式作为字符串放入 ng-pattern 就会得到 a Lexer Error
,因为 Angular 默认在字符串上添加 ^ 和 $ 。
- 如果表达式的计算结果为 RegExp 对象,则直接使用 this。
- 如果表达式的计算结果为字符串,则在将其包装为 ^ 和 $ 字符后,它将被转换为正则表达式。例如,“abc”将转换为 new RegExp('^abc$')。
好吧,让我们尝试将正则表达式字符串转换为正则表达式对象,我想。所以我尝试了这个:
json.data.data[i].validateRegex = new RegExp(json.data.data[i].validateRegex, "g");
但这会导致另一个错误:
Error: ngPattern:noregexp
Expected Regular Expression
Expected {} to be a RegExp but was {}.
如何让我的正则表达式与 ng-pattern 一起使用?最好不要从正则表达式中删除 ^ 和 $ 。