如何分割含负整数的字符串,使负号与后续数字保留为单个元素
分割带负号的数字字符串实现方案
你用split('')会将字符串的每个字符单独拆分,导致负号-被单独提取出来。要实现将-1作为单个元素的需求,可采用以下两种方案:
方法一:正则表达式匹配
利用正则断言精准匹配单独数字或带负号的单个数字:
const str = '2345-10'; const arr = str.match(/(?<!\d)-?\d/g); console.log(arr); // 输出 ['2', '3', '4', '5', '-1', '0']
正则说明:
(?<!\d):负向后行断言,确保当前匹配位置的前一个字符不是数字,避免误匹配数字序列中的负号-?\d:匹配可选的负号,加上单个数字
方法二:手动遍历拼接
通过遍历字符串,遇到负号时主动拼接后续字符:
const str = '2345-10'; const arr = []; for (let i = 0; i < str.length; i++) { if (str[i] === '-' && i < str.length - 1) { arr.push(str[i] + str[i+1]); i++; // 跳过已处理的下一个字符 } else { arr.push(str[i]); } } console.log(arr); // 输出 ['2', '3', '4', '5', '-1', '0']
内容的提问来源于stack exchange,提问作者3gwebtrain
相关产品推荐
相关产品推荐

