2017-07-28 69 views
-1

我想用``模式提取一部分变量。 (开始&一端与)
JavaScript获取特定模式的字符串的一部分

let obj = { 
    'THIS_IS_SOME_KEY_1': 'WORD_WORD_`VAR1`_WORD_`VAAR1`_WORD', 
    'THIS_IS_SOME_KEY_2': '`VAR2`_WORD_WORD_VAAR2_WORD', 
}; 

所以我需要这样的:
[ 'VAR1', 'VAAR1']


[ 'VAR2']
并且还我需要稍后改变它们。
有什么想法?

+0

请分享你已经尝试了代码。 –

+0

@HassanImam我正在寻找一种方法。 – Ramin

+0

这里有很多关于如何使用正则表达式的例子。我发现这个网站也很有帮助。 https://regex101.com/ – arodjabel

回答

3

您可以使用Regexarray#reduce

let obj = { 
 
    'THIS_IS_SOME_KEY_1': 'WORD_WORD_`VAR1`_WORD_`VAAR1`_WORD', 
 
    'THIS_IS_SOME_KEY_2': '`VAR2`_WORD_WORD_VAAR2_WORD', 
 
}; 
 

 
var result = Object.values(obj).reduce(function(arr, line){ 
 
    return arr.concat(line.match(/`(.*?)`/g).map(word => word.replace(/`/g,''))); 
 
}, []); 
 

 
console.log(result);

+1

请注意,'\ w'只捕获“单词字符”或者更简单,简写为'[a-zA-Z0-9_]' –

+1

感谢您的反馈@PatrickBarr,更新了代码 –

+1

我无法没说什么。谢谢哈桑,你让我的一天变得轻松。 – Ramin