我正在尝试在Angular中创建一个可以从远程端点配置的输入指令。从对象属性(string)构造JavaScript中的RegExp
下面的对象应该产生一个输入字段type=text
,只有当输入是一个6位数的数字时才应该设置为有效。
{
inputfield: {
"name": "6-digit code",
"type": "text",
"pattern": "/^\d{6}$/"
}
}
我遇到的问题是,如果我使用$setValidity
和检查值与正则表达式从pattern
产生我得到以下几点:
var pattern = new RegExp("^\d{6}$");
console.log(pattern.toString());
=> "/^d{6}$/"
这很好,因为\
如预期的那样逃脱。我有权访问提供数据的端点。该端点是用Java编写的REST端点。因此,在端点上的正则表达式定义如下:
String regex = "/^\\d{6}$/";
所以,总结一下:
From endpoint: "/^\\d{6}$/"
Received at client: "/^\d{6}$/"
Constructing RegExp from the received object gives: "/^d{6}$/"
Wanted RegExp: /^\d{6}$/
才能实现这一目标,而不在与quadrouple斜杠(即"/^\\\\d{6}$/"
)端点声明正则表达式?
https://www.google.com/search?q=pass%20backslash%20in%20json – mplungjan