我有一個很長很長包含字符串的話就像mushr0om
,mong0lian
,c0rn
,等等。我想「用o
S」 s到更換0
。我知道input.replace('0', 'o')
可能工作,但在同一個字符串中,它也包含像70
,100
,1082
這樣的數字,我不希望replace
方法影響它們。我可以使用正則表達式來做到這一點嗎?如何更換由字母字符包圍的數字字符的字符串
-1
A
回答
2
var string = "mushr0om 70 bl00m 102"
var cleanString = string.split(' ').map((word)=>{
if(! /^\d+$/.test(word)){ return word.replace(/0/g,'o')}
return word
}).join(' ')
console.log(cleanString);
+0
完美地工作。 – Bargain23
1
您可以檢查(上一個和下一個字符)每個字符。如果一個字符是一個數字,那麼檢查它是否是prev。或下一個字符是非數字。如果任何prev。或者下一個字符是非數字然後替換。
- 但如果你設置那麼你所需的字符串有一個像「mongolia007」任子解決方案變得棘手。但對於上面的簡單情況,解決方案應該可行
1
我想你想替換所有「0」,這之前的字母而不是數字,也是一個字母而不是數字。
將你的字符串拆分成一個char數組,然後替換你想要的字符。
var str = 'Twas th0e ni0ght befo100re Xm305as...';
var char = str.split('');
for(var i=0; i<str.length; i++){
if((i==0 || char[i] != " ") && ! isNaN(char[i]) && isNaN(char[i+1]))
char[i] = 'o';
else if(isNaN(char[i-1]) && ! isNaN(char[i]) && (char[i] != " " || i+1 == str.length))
char[i] = 'o';
else if(isNaN(char[i-1]) && ! isNaN(char[i]) && char[i] != " " && isNaN(char[i+1]))
char[i] = 'o';
document.getElementById("demo").innerHTML = document.getElementById("demo").innerHTML + char[i];
}
1
如果我明白了,你只需要更換髮生字符,而不是0
之間的0
在實際數字像900
。正則表達式下方會創建三個組,其中兩個用於字符,另一個夾在零之間。然後我們使用$1
選擇第一組(0之前的字符),並使用$3
選擇第二組(0之後)。 0
被替換爲o
。
var str = "mushr0om, mong0lian, c0rn - 700 hello909";
var str1 = str.replace(/([a-zA-Z])(0)([a-zA-Z])/ig, "$1o$3");
document.getElementById("dvOne").innerText = str1;
div {
padding: 25px;
color: red;
font-size: 16px;
}
<div id="dvOne">
</div>
相關問題
- 1. 正則表達式 - 檢測字母數字字符串不是由非字母數字字符串包圍
- 2. C#長字符轉換的字母數字字符串
- 3. 字母數字字符串
- 4. Java正則表達式替換由非字母數字字符包圍的字符串
- 5. 如何將字符串拆分爲字母字符串和數字字符串?
- 6. 如果字符串中的字母替換爲字符串中的字母
- 7. 如何在Javascript中檢查字符串包含字母字符
- 8. 替換包含$字符的字符串
- 9. 更換給定的字符串以字母在字母表
- 10. 如何以字母順序替換字符串中的字母
- 11. 拆分由特殊字符包圍的字符串
- 12. 遞增的字母數字字符串
- 13. 如何將字符串中的字母轉換爲數字 - C++
- 14. Unicode字母數字字符範圍
- 15. 如何從Java中的任何字符串獲取字母數字字符串?
- 16. 如何從字符串中去除非字母數字字符(包括空格)?
- 17. 如何確定一個字符串是否包含非字母數字字符?
- 18. 如何將字符串的字符串轉換爲字符?
- 19. 字母字符檢查字符串
- 20. 使用awk拆分非字母數字字符的字符串
- 21. 字符串中的字母替換
- 22. 如何獲得特定字符後的字符串的字母
- 23. 字符串的字符數組和字符數組至字符串轉換
- 24. 如何將字符串中的數字替換/替換爲字符串內字母的乘數?
- 25. 如何在數組字符串中搜索非字母字符?
- 26. 用字符替換字符串中的字母
- 27. 用T-SQL中的字符和數字替換字符串中的字母
- 28. 用PHP中的第n個字母字符替換字符串字母
- 29. 如何將字符串的所有非字母數字字符轉換爲連字符?
- 30. 如何將數字轉換爲字符串(字母)在PHP?
就請使用isNaN()來檢查,如果它不是一個數字 – amrit
@amrit但正如我剛纔所說,他們都在同一個字符串這樣的存在:'mushr0om 70 mong0lian 100 1082 '。使用'isNaN()'會影響整個字符串。 – Bargain23
使用str.split(「」)將字符串拆分爲一個子字符串數組,然後使用isNaN()檢查它是否不是數字,然後替換... – amrit