使用javacsripts新的RegExp()函数的积极前瞻

我有以下情况:

var x = "dot.test:semicolon;exclamation!Question?"; var separators = ['\\\!', '\\\.', '\\\(', '\\\)', ':', ';', '\\\?']; var tokens = x.split(new RegExp(separators.join('|'), 'g')); //expected output : ['dot.', 'test:', 'semicolon;', and so on...] 

这工作得很好。 现在我想将RegExp转换为一个积极的lookaheadexpression式,它保持String中的分隔符。 我不知道我将如何做这样的事情与JavaScripts new RegExp()函数。 我想包括[AZ] [az] [0-9]和所有其他标志,因为我将parsing一个正常的文本,并希望保持在每个案件的分隔符。

我真的很感激一些build议!

看来你想匹配除了在你的数组中定义的字符,然后这些字符,如果存在的话。 使用

 var x = "dot.test:semicolon;exclamation!Question?"; var separators = ['!', '.', '(', ')', ':', ';', '?']; var tokens = x.match(new RegExp("[^" + separators.join('') + "]+[" + separators.join('') + "]*", "g")); console.log(tokens);