javascript - 使用正则表达式替换javascript中的所有字符串

标签 javascript regex replace

我有一个动态字符串表达式 var 表达式 = "count+count1+12-(count3+count4)";

我想在每个字符串中附加 v[...],就像这样的输出

输出:-

v[count]+v[count1]+12-(v[count3]+v[count4]);

我尝试过这个正则表达式,

expression = expression.replace(/[a-z]+|[A-Z]+/g, "v["/$1/"]").replace(/[\(|\|\.)]/g, "");

是否可以编写正则表达式正则表达式字符串。

最佳答案

您可以使用

var expression = "count+count1+12-(count3+count4)";
var res = expression.replace(/\b[a-z]\w*/ig, "v[$&]");
console.log(res);

详细信息:

  • \b - 前导字边界
  • [a-z] - ASCII 字母
  • \w* - 0+ 个单词字符 ([a-zA-Z0-9_])。

替换内容包含 $&,即对整个匹配的反向引用。

另一种解决方案,它与数学运算符分开,仅用 v[...] 包装那些不是数字或运算符的子字符串:

var expression = "count+count1+12+234.56-(count3+count4)";
var res = expression.split(/([-+\/*])/).map(function(x) {
   return /^(\d*\.?\d+|[-*\/+])$/.test(x) ? x : "v["+x+"]"; 
}).join("");
console.log(res);

关于javascript - 使用正则表达式替换javascript中的所有字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40992739/

相关文章:

regex - 无法通过子例程通过正则表达式替换字符串

javascript - 父组件 vue 未接收到事件

javascript - 替换或删除查询字符串 javascript

java - 使用 Java + 正则表达式从文本文档中提取 URL

regex - 如何仅使用 grep/sed 提取子字符串和数字

javascript - 如何用jquery循环查找和替换

Javascript 函数引用数组输入字段

javascript - 从 .live 更改为 .on

javascript - 富文本编辑器[所见即所得],使用 javascript 进行分页

string - 用等价物替换特殊字符