java 不规则截取图片_怎么截取不规则字符串

const str="1232{按钮1}{按钮2}765432";

const result=str.split(/(?=\{)|(?<=})/g);

// ["1232", "{按钮1}", "{按钮2}", "765432"]

然后把数字字符串转成数字。

result.map(str=>{let num=parseInt(str); if(num)return num; return str;});

使用了向前匹配和向后匹配,看这篇

可以用函数处理,逐个字符串进行判断。

最好自己尝试实现以下这个函数...

const str = "1232{按钮1}{按钮2}765432";

function handleStr(str) {

const result = [];

//表示是否在处理花括号内的字符

let inBraceNow = false;

for (let i = 0; i < str.length; i++) {

const currentChar = str[i];

if (inBraceNow) {

result[result.length - 1] += currentChar;

if (currentChar == "}") {

inBraceNow = false;

}

} else {

//遇到"{"开始进入花括号处理阶段...

if (currentChar == "{") {

result.push("{");

inBraceNow = true;

} else {

// result数组为空时,需要初始化

//如果数组最后一个不能转为数字,说明是刚进入数字处理阶段,需要传入一个0

if (result.length == 0||(!+result[result.length-1])) {

result.push(0);

}

result[result.length - 1] =10*result[result.length - 1]+(+currentChar);

}

}

}

return result;

}

console.log(handleStr(str));

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值