JavaScript拆分字符串无法正常工作

Aar*_*ron 2 javascript split

我试图分裂一个字符串,但在做这件事时遇到了问题.

我的字符串是:

var EventList = "0x0,0x1,0x1 | 0x0,0xff,0x2 | 0x0,0x1,0x1 | 0x0,0x1,0x1 | 0x0,0xff,0x5 | 0x0,0xff,0x7 | 0x0,0xff,0x3 | 0x0,0xff,0x6";
Run Code Online (Sandbox Code Playgroud)

我需要能够从字符串中删除所有空格(我使用以下代码)

EventList = EventList.replace(/\s/g,'');
Run Code Online (Sandbox Code Playgroud)

我他们需要更换所有| with,(逗号)(我使用以下代码)

EventList = EventList.replace('|',',');
Run Code Online (Sandbox Code Playgroud)

然后我需要使用,(逗号)(我使用以下代码)拆分字符串

EventList = EventList.split(','); 
Run Code Online (Sandbox Code Playgroud)

我试图从我的字符串alart 0x2(我使用以下代码)

警报(EVENTLIST [5]);

但是,它将0x2 | 0x0警告为字符串而不是0x2.

我的完整代码如下所示:

var EventList = "0x0,0x1,0x1 | 0x0,0xff,0x2 | 0x0,0x1,0x1 | 0x0,0x1,0x1 | 0x0,0xff,0x5 | 0x0,0xff,0x7 | 0x0,0xff,0x3 | 0x0,0xff,0x6";
EventList = EventList.replace(/\s/g,''); // replace any spaces in EventList
EventList = EventList.replace('|',',');  // replace any | with ,
EventList = EventList.split(',');       // Split EventList

alert(EventList[5]); // should alert 0x2 but it alerts 0x2|0x0
Run Code Online (Sandbox Code Playgroud)

谁知道我哪里出错了?

小智 5

如果使用字符串作为第一个参数.replace(),则只会转换第一个参数.

var EventList = "a|b|c|d";
EventList = EventList.replace('|',',');
alert("a,b|c|d"); // displays "a,b|c|d"
Run Code Online (Sandbox Code Playgroud)

您需要使用带有/g全局标志的正则表达式,就像您首先使用的那样.

EventList = EventList.replace(/\|/g,',');  // replace any | with ,
Run Code Online (Sandbox Code Playgroud)

(|需要\在正则表达式中使用反斜杠进行转义,因为它在正则表达式语法中具有特殊含义.)

我做了这个替换,它显示"0x2"正如你所说的那样.