使用正则表达式捕获特殊字符之间的字符串段

时间:2014-10-29 13:12:36

标签: javascript regex

我有以下文字字符串:

textString1:textString2:textString3:textString4

我希望捕获每个文本字符串并将它们分配给变量。

我已经设法提出以下内容:

var errorText = 'AAAA:BBBB:CCCC:DDDD';

var subString, intro, host, priority, queue = '';

var re = /(.+?\:)/g;
subString = errorText.match(re);
intro = subString[0];
host = subString[1];
priority = subString[2];
//queue = subString[3];

console.log(intro + " " + host + " " + priority);

JS Bin Link

但是,我遇到了问题:

  • 捕获最后一个组,因为最后没有:
  • 变量包含我要删除的:

2 个答案:

答案 0 :(得分:1)

你不需要正则表达式 - 只需用errorText.split(':')分割冒号即可。它将返回一个数组。

如果您想将它们与空格一起添加,则可以进行简单的替换:errorText.replace(/:/g,' ')

答案 1 :(得分:1)

对this使用split方法。它将返回字符串数组,然后遍历数组以获取字符串:

var errorText = 'AAAA:BBBB:CCCC:DDDD';
var strArr=errorText.split(':');
console.log(errorText.split(':'));
for(key in strArr){
    console.log(strArr[key]);
}