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

如何将replace函数正则中的固定值20替换为变量words并生效?

如何将代码中正则里的“20”替换为变量“words”?

你直接在正则字面量里写{words}是不行的——正则字面量(/.../)里的内容是固定字符串常量,正则引擎会把{words}当成字面字符解析,而不是读取变量words的值,这就是代码失效的原因。

解决方法是用RegExp构造函数动态生成正则表达式,把变量拼接到正则字符串中:

var words = 125;

// 动态创建正则表达式,将变量words插入到重复次数位置
var targetRegex = new RegExp('([a-zA-Z]+[.,]? ){' + words + '}');

$(".px-text-module-<?php echo $id; ?>").html($(".px-text-module").html().replace(targetRegex, function(x) {
  return '<div class="read-more-wrapper"><p class="read-more-content">' + x + '<span class="read-more-dots">...<br></span></p></div><p>';
}));

关键说明:

  • RegExp构造函数接受两个参数:第一个是正则表达式的字符串形式,第二个是可选标志(比如g表示全局匹配,原代码没用到可以不加)。
  • 通过字符串拼接'([a-zA-Z]+[.,]? ){' + words + '}',就能把变量words的数值作为正则的重复次数。
  • 如果words可能是字符串类型,建议先转成数字:'...{' + parseInt(words, 10) + '}',避免非数字值导致正则出错。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.21 19:06:32