tonymx227 tonymx227 - 22 days ago 5
Javascript Question

Match characters between two strings

I'd like to select characters between two strings but it seems not working...

My input data :

// button

/* --------------- Paramétrage du composant --------------- */
// Thème du composant
$btn-theme: material;
// Couleur de fond des boutons
$btn-bg: #fff;
// Couleur de fond des boutons lors de l'hover
$btn-bg-hover: $main-color;
// Border radius des boutons
$btn-border-radius: 4px;
// Hauteur des boutons
$btn-height: 30px;
// Largeur des boutons
$btn-width: 30px;
// Hauteur des icônes SVG dans les boutons
$btn-svg-width: 66%;
// Paddin des boutons
$btn-padding: 0;
/* --------------- /Paramétrage du composant --------------- */


My regex :
/\$(.+):/g


And I would like :
['btn-theme', 'btn-bg', 'btn-bg-hover', ...
as the result. However, my result always contains the dollar sign and the colon sign. e.g:
$btn-padding:
.

Answer

Try this one

var origin = "// button \
/* --------------- Paramétrage du composant --------------- */\
// Thème du composant \
$btn-theme: material; \
// Couleur de fond des boutons \
$btn-bg: #fff; \
// Couleur de fond des boutons lors de l'hover \
$btn-bg-hover: $main-color; \
// Border radius des boutons \
$btn-border-radius: 4px; \
// Hauteur des boutons \
$btn-height: 30px; \
// Largeur des boutons \
$btn-width: 30px; \
// Hauteur des icônes SVG dans les boutons \
$btn-svg-width: 66%; \
// Paddin des boutons \
$btn-padding: 0; \
/* --------------- /Paramétrage du composant --------------- */";

var matches = origin.match(/\$([^:,^;]*):/g);


matches.forEach(function(element, index, array) {
	console.log(element.substring(1, element.length -1));
});