这是我的文本“123,456/,789,ABC”,我想按照逗号分割,但不要分割“/,”。
var text = '123,456/,789,ABC';
var texts = text.split(/[^/],/g);
console.log(texts)
结果是 [ '12', '456/,78', 'ABC' ]
但我希望得到 [ '123', '456/,789', 'ABC' ]
这是我的文本“123,456/,789,ABC”,我想按照逗号分割,但不要分割“/,”。
var text = '123,456/,789,ABC';
var texts = text.split(/[^/],/g);
console.log(texts)
结果是 [ '12', '456/,78', 'ABC' ]
但我希望得到 [ '123', '456/,789', 'ABC' ]
对于你的情况,你可以简单地使用这个正则表达式:
var text = '123,456/,789,ABC';
var texts = text.split(/\b,/g);
console.log(texts); // ["123", "456/,789", "ABC"]
这个想法是单词边界元字符\b
不会匹配/
,因为反斜杠不是一个单词字符,所以在/
和,
之间没有单词边界。
text.match(/REGEX/g)
而不是 text.split(/REGEX/g)
,因为此正则表达式匹配逗号之间的内容而不是逗号本身。 - Shaimatch
的结果仍然包括数组值中的逗号:["123,", "456/,789,", "ABC"]
。 - talemynsplit
并删除空匹配项(如果原始字符串中的空条目需要保留,则可能不可接受),或者使用match
并删除尾随逗号。这都是因为JS缺乏向后查找 - 我想知道在这种情况下,正则表达式是否值得麻烦。 - Shai