如何在stringArray JS中通过拆分或子字符串方法获取所需的字符?



有一个数组,有些字符串彼此不同,但包含操作。所有字符串都有一个大运算符和一个小运算符。我想将字符与运算符分开,稍后再分离。

我的示例数组;

[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)

最新更新