如何用JavaScript从动态字符串中提取版本与日期信息?
解决方法
你的正则表达式匹配逻辑完全偏离目标,以下是针对需求的正确实现:
提取版本号
版本号格式是v+数字.数字.数字,可以用正则精准匹配:
let text = "MD Sheet Template v4.4.0 2023 11 01 (please share then)"; // 提取版本号 const versionMatch = text.match(/v\d+\.\d+\.\d+/); const version = versionMatch ? versionMatch[0] : null; console.log('version', version); // 输出 v4.4.0
提取日期
日期是四位数字 两位数字 两位数字的格式,用正则匹配该结构:
// 提取日期 const dateMatch = text.match(/\d{4} \d{2} \d{2}/); const date = dateMatch ? dateMatch[0] : null; console.log('date', date); // 输出 2023 11 01
说明
- 版本正则
/v\d+\.\d+\.\d+/:匹配以v开头,后跟三组数字(每组至少1位)且用点分隔的字符串 - 日期正则
/\d{4} \d{2} \d{2}/:匹配4位数字+空格+2位数字+空格+2位数字的日期格式 - 用
match()返回的数组中,索引0就是匹配到的完整内容,判断非null后再取值避免报错
内容的提问来源于stack exchange,提问作者The Dead Man
相关产品推荐
相关产品推荐

