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

如何用JavaScript RegExp构造函数编写匹配含Y且以X结尾的正则?

解决包含指定字符串且以指定字符串结尾的正则问题

你之前的代码有两个问题导致匹配失败:

  • 转义错误:你写的\$会让正则把$当成普通字符,而不是用来标记字符串结尾的锚点,自然匹配不上以e结尾的字符串。
  • 结构缺失:直接写${endsWith}\$的话,正则只会匹配**刚好等于endsWith且包含contains**的字符串,但你的目标字符串(比如'ate')长度比endsWith长,所以匹配失败。

正确代码

只需要修正转义问题,同时加上.*来匹配结尾锚点前的任意字符,再用^和$限定整个字符串范围即可:

const endsWith = 'e'
const contains = 'te'
const re = new RegExp(`^(?=.*${contains}).*${endsWith}$`)
re.test('ate') // Result = true
re.test('steve') // Result = true

进阶:处理特殊字符

如果endsWith或contains里包含正则特殊字符(比如.、*这类),需要先转义这些字符,避免正则逻辑出错:

// 正则特殊字符转义函数
function escapeRegExp(str) {
  return str.replace(/[.*+?^${}()|[\]\\]/g, '\\$&');
}

const endsWith = 'e'
const contains = 'te'
const re = new RegExp(`^(?=.*${escapeRegExp(contains)}).*${escapeRegExp(endsWith)}$`)
re.test('ate') // true
re.test('steve') // true

内容的提问来源于stack exchange,提问作者Syed Hussain Abbas EB20_127

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.22 10:54:14