我嘗試創建一個具有 2 個條件的正則運算式:
- 如果單詞長度超過 4 個字符
- 如果單詞包含數字
我需要添加空格
所以喜歡:iph12回傳iph12,但iphone12回傳iphone 12
我寫了正則運算式
.replace(/\d /gi, ' $& ').trim()
并且這個函式以任何方式回傳像iphone 12. 我嘗試使用函式
.replace(/(?=[A-Z] \d|\d [A-Z])[A-Z\d]{,4}/i, ' $& ').trim()
但沒有第二個論點{,4}就行不通了。那么這可能嗎?
uj5u.com熱心網友回復:
您可以使用
text.replace(/\b([a-zA-Z]{4,})(\d )\b/g, '$1 $2')
請參閱正則運算式演示。詳情:
\b- 字邊界([a-zA-Z]{4,})- 第 1 組:四個或更多 ASCII 字母(\d )- 第 2 組:一位或多位數字\b- 字邊界
請參閱 JavaScript 演示:
const texts = ['iphone12', 'iph12'];
const regex = /\b([a-zA-Z]{4,})(\d )\b/g;
for (const text of texts) {
console.log(text, '=>', text.replace(regex, '$1 $2'));
}
輸出:
iphone12 => iphone 12
iph12 => iph12
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/381491.html
標籤:javascript 正则表达式
