如何从字符串及字符串数组提取特定内容?修复代码逻辑错误
字符串内容提取问题解决
一、修复数组提取姓名的代码
你的代码存在两个问题:
- 变量名不匹配:定义的数组是
array,但循环中错误使用了text[i],导致逻辑异常 - 姓名提取的分隔符错误:原字符串中姓名前的分隔符是
-,而非逗号,用split(",")无法正确分割内容
修正后的代码如下:
let array= [ 'age 19 - Donna', 'age 20 - James' ]; let getNumber = []; let getName= []; for(let i = 0; i < array.length; i++){ getNumber[i] = array[i].split(" ", 2)[1]; getName[i] = array[i].split(" - ")[1]; } document.getElementById("demo").innerHTML = getNumber; document.getElementById("demo2").innerHTML = getName;
运行后即可得到期望结果:
19,20
Donna,James
二、单个字符串提取特定单词的方法
针对单个格式固定的字符串,有两种常用提取方式:
1. 字符串分割法
利用split()方法按固定分隔符拆分字符串,再取对应位置的元素:
const str = 'age 19 - Donna'; // 提取年龄 const age = str.split(" ")[1]; // 19 // 提取姓名 const name = str.split(" - ")[1]; // Donna
2. 正则表达式法
对于格式灵活的场景,正则表达式更通用:
const str = 'age 19 - Donna'; // 提取数字(年龄) const age = str.match(/\d+/)[0]; // 19 // 提取分隔符后的姓名 const name = str.match(/- (.*)/)[1]; // Donna
内容的提问来源于stack exchange,提问作者denise
相关产品推荐
相关产品推荐

