I have a string below which has some identifier to get an specific word on it.
string example: “I will c#hec*k on it”
the “#” indicates starting, and the “*” indicates for last.
I want to get two strings.
- check – the whole word that has “#” and “*” on it.
- hec – string that was surrounded.
I have started to use the below code, but it seems does not work.
sentence.split('#').pop().split('*')[0];
Somebody knows how to do it. would appreciate it thanks
Advertisement
Answer
var s = "I will c#hec*k on it" console.log(s.match(/(?<=#)[^*]*(?=*)/)) // this will print ["hec"] console.log(s.match(/w*#[^*]**w*/).map(s => s.replace(/#(.*)*/, "$1"))) // this will print ["check"]
where:
(?<=#)means “preceded by a#“[^*]*matches zero or more characters that are not a*(?=*)means “followed by a*“w*matches zero or more word characters(.*)is a capturing group (referenced by$1) matching any number of any kind of character (except for newlines)