function getCommissionscheduleName(name, libraryCommissionSchedules){
let firstRepetyNum = regularAccessNum(name);
let repetyNums = [];
let prefixname = "";
if(firstRepetyNum){
firstRepetyNum = "(" + firstRepetyNum + ")";
prefixname = name.replace(firstRepetyNum,"");
}
else{
prefixname = name;
}
(libraryCommissionSchedules||[]).map(item=>{
if(item.name && item.name.indexOf(prefixname) > -1){
let num = regularAccessNum(item.name);
if(num){
repetyNums.push(num);
}
}
});
if(repetyNums && repetyNums.length > 0){
repetyNums.sort();
repetyNums.reverse();
firstRepetyNum = repetyNums[0];
}
let newNum = parseFloat(firstRepetyNum?firstRepetyNum:0) + 1;
let returnNum = prefixname + "(" + newNum + ")";
return returnNum;
}
function regularAccessNum(name){
let reg = RegExp(/\(\d{1,9}\)/);
let bracket = RegExp(/\(|\)/);
if(name && name.length > 0 && reg.test(name)){
let suffixArr = reg.exec(name);
if(suffixArr){
let suffixNum = suffixArr[suffixArr.length - 1];
num = suffixNum.replace(bracket,"");
return num?parseFloat(num):null;
}
}
return null;
}
使用方法:
调用getCommissionscheduleName(name, libraryCommissionSchedules);
name:复制的当前条的信息
libraryCommissionSchedules: 表数组,用来过滤类似名字
java也可借用,稍微改改就好了