例如:
var str = '2+3+name+"obj.name name"+"g233"';
我如何获得"变量值" /"对象属性"在str就位" obj.name name"和" g233"字符串
以下示例输出评论是我想要的,如果有最好的方法来实现它;
var age = 20;
var str = '1 + 2 + 3 + age + "age"';
// the output is 1 + 2 + 3 + 20 + "age";
var obj = { age: 30 };
str = '1 + 2 + 3 + "age" + obj.age + "obj.age"';
// the output is 1 + 2 + 3 + "age" + 30 + "obj.age";

这个例子就是我想要的。
答案 0 :(得分:-1)
如果您希望匹配obj.age
或age
而不包围"
,则可以搜索以下正则表达式。
[^"](obj\.age|age)[^"]
var str1 = '1 + 2 + 3 + age + "age"';
var str2 = '1 + 2 + 3 + "age" + obj.age + "obj.age"';
var regex = /[^"](obj\.age|age)[^"]/g;
console.log(str1.match(regex));
console.log(str2.match(regex));

答案 1 :(得分:-1)
如果您需要regexp
,请尝试此链接https://regex101.com/r/DTTesL/1
如果你想使用名为Template Literals的ES2015 / ES6功能,请使用以下语法:
`String text ${expression}`
你甚至可以这样做:
'I want to replace the $age'.replace('$age', age)
答案 2 :(得分:-1)
/(?:^|\+)\s*([a-z_][\w.]*)\s*($|\+)/gi
这将匹配在beginig(^
)或+
符号之后,结束之前($
)或其他加号{{1}的任何变量}。 +
表示必须以字母或[a-z_][\w.]*
开头,并且可以包含数字,字母,_
和_
。
示例:强>
.