javascript regexp没有引号params

时间:2017-01-29 02:12:58

标签: javascript regex literals

例如:

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";




这个例子就是我想要的。

3 个答案:

答案 0 :(得分:-1)

如果您希望匹配obj.ageage而不包围",则可以搜索以下正则表达式。

[^"](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.]*开头,并且可以包含数字,字母,__

示例:



.