javascript - 如何用 RegEx 找到的变量名替换 RegEx?

标签 javascript regex string

假设我有一个名为 testvar 的变量和包含此 testvar 的字符串;
我希望我的函数获取整个字符串并用找到的 RegEx 替换 RegEx。
/k.*?j/ 此 RegExp 查找所有以 k 开头并以 j 结尾的替换。

在我的例子中,它必须用它的值替换ktestvarj
最后,我想要“一些刺字符 123”。

var t = 'some sting characters ktestvarj';
var testvar = 123;
var modify = function(str) {
    var teststr = str.replace(/k.*?j/, ' + /k.*?j/ + ');
    console.log(teststr); 
}

modify(t);

最佳答案

假设我们有字典 variables 存储用于替换的变量。然后您可以使用替换为自定义 function-replacer 。我添加了组捕获 /k(.*?)j/g - 所以第一组将是您的变量名。并且还添加了全局标志以替换每个匹配项。

var t = 'some sting characters ktestvarj';

var variables = {
  'testvar': 123,
  'testvar1': 456
};

function replacer(match, p1, offset, string) {
  return variables[p1];
}

var modify = function (str) {
  var teststr = str.replace(/k(.*?)j/g, replacer);
  console.log(teststr); 
}

modify(t);
modify('some ktestvarj sting characters ktestvarj ktestvar1j');

关于javascript - 如何用 RegEx 找到的变量名替换 RegEx?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54199567/

相关文章:

c++ - 直接写入 std::string 的 char* 缓冲区

javascript - HTML 下拉菜单需要 javascript 帮助

javascript - 如何移动/复制文件并在冲突时重命名

javascript - 重叠图像在 Bootstrap 轮播淡入淡出时缓慢交叉淡入淡出

regex - Perl正则表达式-(x | y)*是否等于[xy] *?

java - Java 字符串搜索模式问题(包含/匹配)

c - 在另一个字符串中查找包含一个字符串的所有字符的最小窗口的长度

javascript - Angular:传递 @Input 值以覆盖按钮文本并使用 ngClass 添加类时出现错误

javascript - 正则表达式匹配字符或数字

java - Java中将字符串拆分为列表