简体   繁体   中英

Getting content between curly braces in JavaScript with regex

I am trying to get content between curly braces with JavaScript. I found this thread: Regex to get string between curly braces "{I want what's between the curly braces}"

But I do not know how to apply a regex like /\\{([^}]+)\\}/

I have tried string.replace('/\\{([^}]+)\\}/',''); , however this does not work.

Here's an example of use:

var found = [],          // an array to collect the strings that are found
    rxp = /{([^}]+)}/g,
    str = "a {string} with {curly} braces",
    curMatch;

while( curMatch = rxp.exec( str ) ) {
    found.push( curMatch[1] );
}

console.log( found );    // ["string", "curly"]

Try this

/[^{\}]+(?=})/g

for example

Welcome to RegExr v2.1 by {gskinner.com}, {ssd.sd} hosted by Media Temple!

it will return 'gskinner.com', 'ssd.sd'

Like this?

var x="omg {wtf} bbq";

alert(x.match(/{([^}]+)}/));
"{I want what's between the curly braces}".replace(/{(.*)}/, "$1");

this should work, cheers.

Note: you'll "get everything" in the braces, even if it's an empty string.

Updated: If you are going to match the first character which in the middle of a string, use "match":

"how are you {I want what's between the curly braces} words".match(/{(.*)}/)[1];

You can just do:

console.log("how are you {I want what's between the curly braces} words".match(/{(.*)}/));

then you'll see a list of the match items, exploit them to whatever you want.

Gory details: http://www.w3schools.com/jsref/jsref_obj_regexp.asp

This will return an array of matching text.
the map function will return the text without {} .

const text = "Regex to get string between curly braces {I want what's between the curly braces}"
const result = text.match(/{([^}]+)}/g)
  .map(res => res.replace(/{|}/g , ''))

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM