我有三個字串,我需要檢查其中一個字串是否包含與給定順序相同的其他 2 個字串,現在我正在使用很多條件來實作這一點,有沒有辦法使用正則運算式來簡化它?
這是代碼:
var a = '**';
var b = '##';
var phrase = '**Lorem ipsum dolor sit amet##';
if(phrase.includes(a) && phrase.includes(b) && (phrase.indexOf(a) < phrase.indexOf(b))) {
// add logic
}
uj5u.com熱心網友回復:
您可以在## 之前使用模式匹配**
^(?:(?!##|\*\*).)*\*\*.*##
^字串的開始(?:(?!##|\*\*).)*匹配任何字符,但不直接跟在任一##或**\*\*第一場比賽**.*匹配任意字符 0 次##比賽##
正則運算式演示
var phrase = '**Lorem ipsum dolor sit amet##';
if (phrase.match(/^(?:(?!##|\*\*).)*\*\*.*##/)) {
// add logic
}
var phrases = [
'**Lorem ipsum dolor sit amet##',
'test****#**##',
'##**Lorem ipsum dolor sit amet##',
'##**##**',
];
phrases.forEach(phrase => {
if (phrase.match(/^(?:(?!##|\*\*).)*\*\*.*##/)) {
console.log(`Match for ${phrase}`);
} else {
console.log(`No match for ${phrase}`);
}
});
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/362420.html
標籤:javascript 正则表达式 条件语句 指数
上一篇:Ansible正則運算式從不包括軟鏈接符號的字串串列中提取路徑
下一篇:替換陣列回圈中的字串
