我正在生成將用于可下載資產的檔案名的字串。有問題的資產的命名約定有時包括正斜杠 ( /)。我正在努力弄清楚如何通過以下方式匹配和替換:
- 如果匹配到空格,則將其替換為下劃線 (
_) - 如果匹配正斜杠,請將其替換為某些內容或將其洗掉 - 仍在爭論我將用什么替換它以確保易讀性。洗掉它可能沒有意義,因為我仍然會得到雙下劃線。
我目前有這個:
const chartDescriptionFormatted = chartDescriptionRaw.replace(/\s /g, '_')
給定字串Victims / Involved Parties,我得到了這個:Victims_/_Involved_Parties這是人類可讀的,但是當我去下載檔案時播放不好。下載檔案/后,輸出中看到的字符將替換為下劃線_,因此我的檔案名以三個下劃線結尾,如下所示:

編輯:我意識到/在給定示例的情況下,洗掉字符仍然會給我留下雙下劃線。我最感興趣的是弄清楚如何匹配不同的東西并根據匹配的內容選擇性地替換。
uj5u.com熱心網友回復:
最簡單的方法是.replace()按順序呼叫兩次:
const chartDescriptionFormatted = chartDescriptionRaw.replace(/\//g, '')
.replace(/\s /g, '_');
第一次通過洗掉所有正斜杠。第二遍將任何空格序列轉換為單個_. 在這種情況下,順序很重要。您必須首先洗掉正斜杠。
請參閱下面的演示:
const chartDescriptionRaw = 'Victims / Involved Parties';
const chartDescriptionFormatted = chartDescriptionRaw.replace(/\//g, '')
.replace(/\s /g, '_');
console.log(chartDescriptionRaw, '-->', chartDescriptionFormatted)
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/519984.html
標籤:正则表达式
下一篇:正則運算式到URL中的雙連字符
