令人沮丧的是,我知道 javascript 不支持lookbehinds,这会使这个任务变得非常简单。
我有一个用户输入的字符串,因此语法必须简单,因此我有一个列表列表,整个列表由空格分隔,子列表由逗号分隔。 (这是针对搜索引擎的,因此为什么一个输入会捕获如此多的内容)所以它可能就像......
乔恩、乔4、嘉莉、史蒂夫17A 14、13、12、37
第一个列表的元素永远不能包含空格(因此无逗号空格是一个可靠的点)Jon, Joe4, Carrie, Steve17A
与第二个列表 14, 13, 12, 7
前面没有逗号的空格。我也总是可以指望第一个列表总是
我尝试了一些正则表达式
([^,])(?!,)\s
- 在分割场景中不起作用。在替换场景中,我可以使用 1 美元。(?!,\s)
- 不起作用,原因我不完全确定。它匹配逗号后面的空格。
我的意图是说List1 = Lists.split(regex)
。
我可以用replace()
编造一些东西..类似
List1 = Lists.replace(/([^,])\s+.*/,"$1");
这在这种情况下会起作用,但可能超出了需要做的范围。除了调用 XRegExp (如果可行的话)之外,还有更好的方法吗?我已经很好地编写了所有内容,而没有涉及我不想将其引入一次用途的库。
最佳答案
只需将逗号和空格替换为逗号,然后按空格拆分以获得两个组,然后按逗号拆分以获得部分
var lists = 'Jon, Joe4, Carrie, Steve17A 14, 13, 12, 37';
var groups = lists.replace(/,\s+/g,',').split(' ');
var parts1 = groups[0].split(',');
关于javascript - Vanilla Javascript split(regex) 来匹配前面没有逗号的空格?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28573022/