我正在嘗試在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