You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

正则匹配疑问:带变量的正则为何误匹配?如何修改匹配句号后缀?

正则匹配问题解决:匹配“ta”后跟句号的正确写法

你的问题出在正则里的.是正则元字符,它能匹配任意单个字符(除换行符),所以原正则会匹配字符串里“takes”中“ta”后面的“k”,导致误判返回true。

要解决这个问题,需要把.转义成普通的句号字符,有两种写法:

  • 如果你用RegExp构造函数,因为字符串里的反斜杠需要转义,所以要写双反斜杠:
    let regex = new RegExp("ta" + "\\.", "i")
    
  • 更简洁的正则字面量写法,直接用单反斜杠转义即可:
    let regex = /ta\./i
    

测试验证:

let text = 'Paracetamol takes up to an hour to work. to '

// 构造函数写法
let regex1 = new RegExp("ta" + "\\.", "i")
console.log(regex1.test(text)) // 输出 false,无匹配

// 字面量写法
let regex2 = /ta\./i
console.log(regex2.test(text)) // 输出 false,无匹配

// 测试存在匹配的场景
let matchedText = 'This is ta. example'
console.log(regex2.test(matchedText)) // 输出 true,正确匹配

内容的提问来源于stack exchange,提问作者crmarc

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.18 14:12:51