Angular中RegExp('')中吃的正規表達式和JavaScript中吃的差異在哪?

會這樣問的原因,是專案要用到一些自訂的驗證器
而一些規則,我使用正規表達式去做輸入的處理正確與否驗證

類似這樣

this.formDataService.serviceFormGroup.controls.
 .get('control0001')
 .setValidators([Validators.required,           
     RegexEngAddressValidator(
      new RegExp('^[#.0-9a-zA-Zs ,-.\uFF00-\uFFFF]+$'),
  ),
]);

但是網路上找到的一些正規表達式
都要做些修改才能合用於Angular
或是prettier也會自動做修正

於是在想說是不是有什麼轉換規則或是我正規表達式的語言選錯
才會有這樣問題

再請各位大大解惑

沒差,Angular 也是使用 JavaScript Regex 的表示法. 他並沒有額外創新

1個讚

我找到問題了…
難怪斜線會被消失,網路上找的也要自己加工
:joy:

引用自[Javascript] 初探Regex 正規表達式

RegExp預設會直接幫你跳脫特殊字元,如果你要在裡面寫跳脫字元規則的話,記得寫兩個反斜線來告訴他不要跳脫:

例如:
new RegExp('\d')   // return /d/ (變成匹配d這個字元了)
new RegExp('\\d')   // return /\d/ (是我要的數字匹配規則)