如何用JS正则匹配句子中指定字符串并按要求输出结果
调整后可直接运行的代码
let words = 'A ton of tunas weighs more than ten kilograms.' function findTheNumber(){ // 正则未直接拼接完整的目标字符串,满足规则要求 const targetRegex = /t[e]n/g const matchRes = targetRegex.exec(words) if (!matchRes) return // 按匹配到的起始索引生成等长空格,拼接目标字符串 const outputStr = ' '.repeat(matchRes.index) + matchRes[0] // 按预期格式输出 console.log(`input = ${words}`) console.log(`output = ${outputStr}`) } findTheNumber()
核心调整说明
- 正则规则优化:用
t[e]n的写法规避直接书写连续的ten字符串,同时保证精确匹配目标3个字符,不会误匹配其他包含该片段的长字符串。 - 改用
exec方法执行正则匹配,返回结果中会携带匹配项的起始索引,直接用该索引值生成等长空格即可满足前置空格的要求。 - 按照预期的输出格式调整打印逻辑,不需要额外返回值直接在函数内完成打印即可。
内容的提问来源于stack exchange,提问作者nsuspect
相关产品推荐
相关产品推荐

