I need this string:
var x = \'Hi ${name}! How are you? ${name}, you are old! ${name} share with ${other} how do u ${feel}!\'
I need to know
I find this solution at #regex IRC Channel by farn user:
x.match(/\$\{([^\}]+)\}(?![\S\s]*\$\{\1\})/g);
output:
['${name}',
'${other}',
'${feel}']
and
x.match(/\$\{([^\}]+)\}(?![\S\s]*\$\{\1\})/g).length;
output:
3
:)
I need to know using Regex how much distinct ${ANY_THING} exists
x.match(/\$\{[^\}]+\}/g)
.sort()
.filter(function(element, index, array) {
return index == array.indexOf(element);
}) // this .filter() filters out the duplicates (since JS lacks of built in
// unique filtering functions
.length;
The code above would return 3
, as that's how many distinct items are in the x
string.
JSFiddle: http://jsfiddle.net/cae6P/
PS: It's not possible to do it with regular expression only. You need to filter duplicates using the .filter()
solution or some other similar
To match the syntax you want you need this:
x.match(/\$\{([a-zA-Z]+)\}/)