[英]Cant make regex work to remove the first white space character
我有以下div:
<div data-test="([1] Hello World), ([2] Foo Bar)"></div>
現在,我想做的是找到最干凈的方法將字符串分成以下幾部分:
數組[“ 1”,“ Hello World”,“ 2”,“ Foo Bar”];
我該如何正確,快速地實現這一目標?
我設法接近了,但是我的解決方案看起來有些丑陋,無法按預期工作。
var el = document.getElementsByTagName("div")[0];
data = el.getAttribute('data-test');
list = data.replace(/[([,]/g, '').split(/[\]\)]/);
for(str of list) {
str = str.trim();
}
我仍然在每個字符串的開頭保留空格。 我真的不想使用修剪或任何類似的方法。 我試圖在正則表達式s /中添加空格字符,但這也不是一個好主意。
以下功能應該起作用。
function strToArr(str) {
var arr = [];
var parts = str.split(', ');
parts.forEach(part => {
var digit = part.match(/(\d+)/g)[0];
var string = part.match(/(\b[a-zA-Z\s]+)/g)[0];
arr.push(digit, string);
});
return arr;
}
var text = '([1] Hello World), ([2] Foo Bar)';
var textReplaced = text.replace(/\(\[([^\]])\]\s([^)]+)\)/g, '$1, $2');
var array = textReplaced.split(', ');
console.log(array);
沒有任何循環。
您可以嘗試以下正則表達式:
list = data.replace(/^\(\[|\)$/g, '').split(/\] |\), \(\[|\] /);
兩步:
假設字符串的格式是固定的。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.