簡體   English   中英

無法使正則表達式起作用以刪除第一個空格字符

[英]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(/\] |\), \(\[|\] /);

兩步:

  1. 刪除標題“([和尾隨”)”
  2. 用定界符將字符串分成所需的部分

假設字符串的格式是固定的。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM