Javascript .split()维护拆分字符
我需要像这样分开一根线Javascript .split()维护拆分字符,javascript,regex,split,Javascript,Regex,Split,我需要像这样分开一根线 var val = "$cs+55+mod($a)"; 排成一列 arr = val.split( /[+-/*()\s*]/ ); 问题是将拆分器字符保持为数组元素,如 arr = [ '$cs', '+', '55', 'mod', '(', '$a', ')' ] 而且不像 arr = [ '$cs', '55', 'mod', '$a' ] 您应该使用match而不是split "$cs+55+mod($a)".match(/([+-/*()\s*]|[^
var val = "$cs+55+mod($a)";
排成一列
arr = val.split( /[+-/*()\s*]/ );
问题是将拆分器字符保持为数组元素,如
arr = [ '$cs', '+', '55', 'mod', '(', '$a', ')' ]
而且不像
arr = [ '$cs', '55', 'mod', '$a' ]
您应该使用
match
而不是split
"$cs+55+mod($a)".match(/([+-/*()\s*]|[^+-/*()\s*]+)/g);
说明:
[+-/*()\s*] -- Your provided regex
[^+-/*()\s*]+ -- Negation of the above regex using ^ and mentioning that could be more than one letter by using +
您应该使用
match
而不是split
"$cs+55+mod($a)".match(/([+-/*()\s*]|[^+-/*()\s*]+)/g);
说明:
[+-/*()\s*] -- Your provided regex
[^+-/*()\s*]+ -- Negation of the above regex using ^ and mentioning that could be more than one letter by using +
谢谢大家的帮助 我的问题解决了,但还没有解决 下面是一个更详细的用法 }))
我做了一个演讲,大家都可以看到我在做什么。首先感谢大家的帮助 我的问题解决了,但还没有解决 下面是一个更详细的用法 }))
我做了一个测试,你们都可以看到我在做什么。你们不想让
+
介于55
和mod
之间吗?或者你的意思是这样写的:arr=['$cs','+','55','+','mod','('','$a',')']
?我想要'+'在'55'和'mod'之间。问题是,split的“+”和其他字符没有作为数组元素收费。看看这篇文章,它似乎正是你想要的:所有的答案都很好!完全只是为了好玩,这里有一个前3个答案(其中1个被删除)的性能配置文件-一个滚动您自己的解决方案,使用.match
,并使用正则表达式组:@dcd4u2首先添加相应的标记。这样我们也能尝到甜味。你不想让+
介于55
和mod
之间吗?或者你的意思是这样写的:arr=['$cs','+','55','+','mod','('','$a',')']
?我想要'+'在'55'和'mod'之间。问题是,split的“+”和其他字符没有作为数组元素收费。看看这篇文章,它似乎正是你想要的:所有的答案都很好!完全只是为了好玩,这里有一个前3个答案(其中1个被删除)的性能配置文件-一个滚动您自己的解决方案,使用.match
,并使用正则表达式组:@dcd4u2首先添加相应的标记。这样我们也可以品尝甜味。你不需要使用捕获组,只需使用“$cs+55+mod($a)”。匹配(/[+-/*()\s*]|[^+-/*()\s*]+/g)代码>可以。@AvinashRaj strange。。但是match
需要括号来捕捉,对吗?这在没有括号的情况下是如何工作的?谁告诉你match需要一个捕获组<代码>[+-/*()\s*]
部分将进行单独的匹配,[^+-/*()\s*]+
也将进行单独的匹配。最后match返回所有匹配的字符。不需要捕获任何内容。您不需要使用捕获组,只需使用“$cs+55+mod($a)”。匹配(/[+-/*()\s*]|[^+-/*()\s*]+/g)代码>可以。@AvinashRaj strange。。但是match
需要括号来捕捉,对吗?这在没有括号的情况下是如何工作的?谁告诉你match需要一个捕获组<代码>[+-/*()\s*]
部分将进行单独的匹配,[^+-/*()\s*]+
也将进行单独的匹配。最后match返回所有匹配的字符。没有必要捕捉任何东西。