How to remove a wrapping function using Regex in JavaScript? Say I have
parse(someVar)
I want only someVar to be left. I saw this post but not sure how to apply it.
CodePudding user response:
Taken from here:
Function names can contain letters, digits, underscores, and dollar signs (same rules as variables).
Which, in RegEx, looks like this:
[a-zA-Z\d_$]
So to match the function call you specified, it would look like this (I added parenthesis around the someVar / input parameter, so we can extract it later as a RegEx group):
[a-zA-Z\d_$] \(([a-zA-Z\d_$] )\)
And in JavaScript, we can take the someVar value out like this:
const regex = /[a-zA-Z\d_$] \(([a-zA-Z\d_$] )\)/;
const paramName = regex.exec("parse(someVar)")[1];
console.log(paramName);
// Outputs "someVar"
CodePudding user response:
You can also achieve this with the help of String.match() method along with the Array.map() method.
Live Demo :
console.log("parse(someVar)".match(/\((.*?)\)/g).map(b => b.replace(/\(|(.*?)\)/g,"$1")))
RegEx explanation :
Match string regex - \((.*?)\)
\( - To allow opening parenthesis
(.*?) - Group which define one or more characters, ? denotes not mandatory (So there might be a characters inside parenthesis or might not be)
\) - To allow closing parenthesis
CodePudding user response:
here is a working solution:
let str = "parse(someVar)";
let result = str.replace(/^\w \((.*)\)$/, "$1");
console.log(result);
