我正面臨一個奇怪的正則運算式問題。我的運算式在https://regexr.com/3cr6f中作業正常 但是當我在我的代碼中使用相同的運算式時,它開始失敗。
這是我的表達:
^([a-zA-Z] \\) (Documents){1}\\{1}((CT([A-Za-z]){0,2})|(FE)|(FF))$
我想在我的打字稿字串上測驗這個運算式:
var case1='User\Folders\MyDocuments\CTTV';
var case2='User\Folders\MyDocuments\FE';
var case3='User\Folders\MyDocuments\FF';
但它總是讓我回傳null。
var regex = new RegExp(/^([a-zA-Z] \\) (Documents){1}\\{1}((CT([A-Za-z]){0,2})|(FE)|(FF))$/);
regex.test(case1); //false
可能是其他人在 Javascript 打字稿中也遇到了這樣的問題。
uj5u.com熱心網友回復:
正如其中一條評論所指出的,測驗字串是MyDocuments但你的正則運算式有Documents. 如果您將正則運算式調整為此:
^([a-zA-Z] \\) (MyDocuments){1}\\{1}((CT([A-Za-z]){0,2})|(FE)|(FF))$
它作業正常
https://regex101.com/r/xoGaue/1
uj5u.com熱心網友回復:
所以目前它不起作用的原因是你試圖將字串 myDocuments 與 Documents 匹配。
要修復您的正則運算式,我將通過添加.*?這將匹配任何可能的字符來為正則運算式添加部分匹配。
^([a-zA-Z] \\) (.*?Documents.*?){1}\\{1}((CT([A-Za-z]){0,2})|(FE)|(FF))
但我會一起改變你的正則運算式:
如果您不關心檔案檔案夾,那么我建議:
^(. )\\ ((CT([A-Za-z]){0,2})|(FE)|(FF))$
否則你可以使用:
^(. )\\ (.*?Documents.*?){1}\\((CT([A-Za-z]){0,2})|(FE)|(FF))$
uj5u.com熱心網友回復:
- 將“我的”添加到“檔案”
- 使用 String.raw`` 轉義反斜杠
看看”: https ://playcode.io/918676/
let
case1=String.raw`User\Folders\MyDocuments\CTTV`,
case2=String.raw`User\Folders\MyDocuments\FE`,
case3=String.raw`User\Folders\MyDocuments\FF`,
case4=String.raw`User\Folders\MyDocuments\False`
let regex = new RegExp(/^([a-zA-Z] \\) (MyDocuments){1}\\{1}((CT([A-Za-z]){0,2})|(FE)|(FF))$/);
console.log(
regex.test(case1),
regex.test(case2),
regex.test(case3),
regex.test(case4)
)
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/495684.html
標籤:javascript 正则表达式 打字稿
上一篇:反應按鈕不可點擊
下一篇:將Date物件更新為now()
