Javascript 使用带开头的正则表达式拆分字符串>=|<=|=|<|>;|\!=和一个字符串加上增量值

Javascript 使用带开头的正则表达式拆分字符串>=|<=|=|<|>;|\!=和一个字符串加上增量值,javascript,regex,regex-group,Javascript,Regex,Regex Group,有一种情况,我必须将字符串拆分为3个子字符串 范例 <=Mindate+30 >>> [<=,Mindate,+30] <=Mindate >>> [<=,Mindate] >=Maxdate-3 >>> [>=,Maxdate,-3] ==Date >>> [==,Date] >[>[=Maxdate-3>>[>=,Maxdate,-3] ==日期>>>[==日期] 我创建了

有一种情况,我必须将字符串拆分为3个子字符串

范例

<=Mindate+30 >>> [<=,Mindate,+30]
<=Mindate  >>>  [<=,Mindate]
>=Maxdate-3 >>> [>=,Maxdate,-3]
==Date  >>>  [==,Date]
>[>[=Maxdate-3>>[>=,Maxdate,-3]
==日期>>>[==日期]
我创建了一个将当前数组一分为二的函数

function splitString(str){  
var a= /(>=|<=|=|<|>|\!=)|.+/g
return str.match(a);
}
splitString('<=Mindate+45');
函数拆分字符串(str){

var a=/(>=|您只需要将文本部分(
\w+
)与数字部分(
[-+]\d+
)分开:

函数拆分为三个(输入){

让regex=/(>=|您可以创建一个模式,该模式匹配并捕获所有比较运算符,或匹配每个
+
/
*
-
运算符之前的一个位置,并在
字符串中使用表达式#split
方法:

a.split(/([<>!=]=|[=<>])|(?=[-+\/*])/).filter(Boolean)
a.split(/([!=]=|[=])|(?=[-+\/*])/).filter(布尔值)
请参阅JS演示:

var-strs=['=SomeFn-3.45'];
rx=/([!=]=|[=])|(?=[-+\/*])/;
适用于(strs的风险值a){
var res=a.split(rx).filter(布尔值);
console.log(a,“=>”,res);

}
什么不起作用?预期的输出是什么?regex可以写成
([>]|\w+|[+-]\d+)
@ThomasAyoub谢谢你的澄清。我假设在这种情况下,如果明确说明不同的情况,regex更可读。从效率方面来说,你的regex可能更好。