我试图用javascript获取花括号之间的内容,我找到了这个帖子:
Regex to get string between curly braces "{I want what's between the curly braces}"
但我不知道如何应用像'/ {([^}] +)} /'
这样的正则表达式我尝试过string.replace('/ {([^}] +)} /','');
然而这不起作用。
答案 0 :(得分:25)
以下是使用示例:
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"]
答案 1 :(得分:3)
喜欢这个吗?
var x="omg {wtf} bbq";
alert(x.match(/{([^}]+)}/));
答案 2 :(得分:2)
试试这个
/[^{\}]+(?=})/g
例如
欢迎使用由Media Temple主办的{gskinner.com},{ssd.sd}的RegExr v2.1!
它将返回'gskinner.com','ssd.sd'
答案 3 :(得分:1)
"{I want what's between the curly braces}".replace(/{(.*)}/, "$1");
这应该有效,干杯。
注意:即使它是空字符串,你也会在括号中“获取所有内容”。
的更新强> 的 如果要匹配字符串中间的第一个字符,请使用“match”:
"how are you {I want what's between the curly braces} words".match(/{(.*)}/)[1];
你可以这样做:
console.log("how are you {I want what's between the curly braces} words".match(/{(.*)}/));
然后你会看到匹配项的列表,将它们用于你想要的任何东西。
答案 4 :(得分:0)
这将返回匹配文本的数组。
map函数将返回不带{}
的文本。
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 , ''))