我試圖為以下問題找到一個優雅的解決方案。我有以下字串:
這 ) 是 ) 一些 $ 文本。) lkzejflez $ aaeea ) aeee
存在于粗體標記括號之前的人類可讀文本部分和括號之后的純垃圾部分。我需要在類似于這個的字串中找到人類可讀的文本。我需要在最后一個括號(粗體標記)之前獲取文本,它后面仍然有一個美元符號(粗體標記)。這是我對問題的解決方案:
const info = "This)is)$a sentence.)lkzejflez$aaeea)aeee";
let result;
for(let i = 0; i < info.length;i ){
const char = info[i];
const after = info.substring(i 1,info.length);
const otherChance = after.indexOf(')') < after.lastIndexOf('$');
if(otherChance){continue;};
const isEndBracket = char ===')';
const before = info.substring(0,i)
if(isEndBracket){result = before;break;};
}
console.log(result)
預期的結果是'This)is)$a sentence。我的代碼確實回傳了這個結果,但它使用了 substr 和一個可以使用正則運算式的 forloop。但是我現在不知道如何。有誰知道我的問題的更優雅的解決方案。提前致謝。
uj5u.com熱心網友回復:
嘗試以下正則運算式:^.*\)(?=.*\$)
解釋:從行首到最后一個 ) 匹配盡可能多的字符,后面跟一個 $。
詳細說明:貪婪地匹配零個或多個除換行符以外的任何字符,從行首到一個 ) 字符,然后是零個或多個除換行符之外的任何字符,然后是 $ 符號。
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/434502.html
標籤:javascript 细绳 for循环
