有一个数组,有些字符串彼此不同,但包含操作。所有字符串都有一个大运算符和一个小运算符。我想将字符与运算符分开,稍后再分离。
我的示例数组;
[definitions1<=3123,definitions31241>=32414,definitions123213123>=12]
我想要的结果;
[<=3123,>=32414,>=12]
当我尝试使用这样的拆分方法时,
(split(<(.pop((( or (split(>(.pop(((
结果 = [=3123,=32414,=12] 我无法获得 (<,>( 运算符。
当我尝试使用 substr 时,我无法给出标准的开始和结束参数,因为字符串的长度不同。
如果有人展示正则表达式方法或更简单的方法,我会很高兴。
您可以使用带有捕获组的正则表达式将其拆分
const strs = ["definitions1<=3123","definitions31241>=32414","definitions123213123>=12"];
const result = strs
// matches multiple occurrences of "<", "=" and ">"
// like "<", "<=", "===", ">=", but also "<<=====>>", ">><<"
.map((x) => x.split(/([<=>]+)/))
.map(([definition, operator, value]) => [operator, value].join(""));
document.write(JSON.stringify(result, null, 2));
使用搜索来查找起始位置的索引,并使用字符串长度可以对字符串进行切片。
var str = "definitions1<=3123";
var m = str.search("<");
var n = str.slice(m,str.length);
console.log(n);
var arr= ['definitions1<=3123','definitions31241>=32414','definitions123213123>=12']
var newarr=arr.map(x=> x.split('='))
finalarray=[]
newarr.forEach(array => {
resu=array[0].includes('<') ?finalarray.push('<='+array[1]):finalarray.push('>='+array[1])
});
console.log(finalarray)