我试图分裂一个字符串,但在做这件事时遇到了问题.
我的字符串是:
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"正如你所说的那样.