任何人都可以使用javascript String.replace()方法建議regEx將(,,,text,,4,text,3,,)
更改爲(text,4,text,3)
?使用正則表達式將(,,, text ,, 4,text,3 ,,)轉換爲(text,4,text,3)
回答
這是一個基於正則表達式的解決方案,它是在一個單一的replace
電話:
var re = /,+(?=,)|,+(?=\))|(\(),+/g;
var result = input.replace(re, '$1');
它在那裏留下一些空間,但不是我們無法處理的東西:)謝謝! – TBE
我建議你做無正則表達式,它的更好,如果你做不空項的數組:使用單一
Array.prototype.clean = function(deleteValue) {
for (var i = 0; i < this.length; i++) {
if (this[i] == deleteValue) {
this.splice(i, 1);
i--;
}
}
return this;
};
var arr = ",,,text,,4,text,3,,".split(","); //convert string into array
arr.clean(""); // clean all empty items
console.log(arr); // returns ["text","4","text","3"]
感謝馬科斯,這幾乎是我想到的,只是想確定,因爲我真的很喜歡做的東西與regEx :) – TBE
好吧,我可以推薦你這個頁面https://regex101.com/#javascript來測試和改進並解釋你的正則表達式,這是理解和學習使用它的好方法 –
將函數混合到原型使其更難以保存。簡單的'',,, text ,, 4,text,3 ,,「。split(',')。filter(function(s){return !! s;});'會更乾淨。 – paolobueno
此,最有可能,不能做代替,如JavaScript正則表達式是比較有限的,但你可以嘗試:
var str = "(,,,text,,4,text,3,,)"
str.replace(/^\(,+/g, "(")
.replace(/,+\)$/, ")")
.replace(/,+/, ",");
// → "(text,4,text,3)"
注意的是3個獨立的情況下,開始,結束(消除逗號)和中間(用單個逗號替換多個逗號)。
你可以用3項內容替換做到這一點:
- 改變一切「很多逗號」,以一個逗號
- 刪除第一個括號後的第一個逗號。
- 刪除最後一個括號之前的最後一個逗號。
var str = '(,,,text,,4,text,3,,)';
str = str
.replace(/,+/g, ',')
.replace(/^\(,/, '(')
.replace(/,\)$/, ')');
alert(str);
- 1. Javascript正則表達式模式「{{text}}」
- 2. Sublime Text 3 API插件替代文字的正則表達式
- 3. Sublime Text 3中ignored_words中的正則表達式spell_check?
- 4. Sublime Text 3-Material Theme
- 5. Sublime Text 3增量選擇
- 6. text/plain vs text/javascript
- 7. tableview text over previous text
- 8. JQuery $(this).find(「#id」)。text(「text」)not change text
- 9. Javascript - Solid Text Text Flash
- 10. Sublime Text中的Matplotlib 3
- 11. sublime text 3 mac-comment selected part
- 12. Sublime Text正則表達式:用Gettext替換字符串
- 13. Fedora Sublime Text 3 beesu exec
- 14. Sublime Text 3輸出Python
- 15. Text Extraction
- 16. preg_match「Text」「Mabye text」「Eight Numbers」
- 17. Sublime Text 2中的正則表達式搜索替換
- 18. 不能刪除.text。使用正則表達式
- 19. 使用Sublime Text設置stylelint 3
- 20. .doc to plain text轉換器
- 21. 將INT轉換爲STRING/TEXT SQL
- 22. 如何將SMILE轉換爲TEXT(Android)
- 23. 爲什麼在使用wp_register_script()時,wordpress將「text/rocketscript」替換爲「text/javascript」?
- 24. 轉換#text字符串
- 25. Text to Column change as Text to row
- 26. TEXT值
- 27. text/plain和text/html與c + +郵件
- 28. Text off off顯示頁面軌跡4
- 29. Sublime Text 3默認軟件包禁用
- 30. input()命令不適用於Sublime Text 3
這可能是非常困難的,因爲隨機性的逗號... – Brent
你不會回去你需要像這樣的東西的正則表達式。只是1 /遞歸替換所有雙逗號與單個和2 /替換'(''與'''''''''''' – Kerstomaat
那麼這就是我認爲,我的解決方案是刪除括號,執行String .split(,)'並從返回的數組中移除空單元格。 – TBE