【问题标题】:Javascript regex - how to get text between curly bracketsJavascript regex - 如何在大括号之间获取文本
【发布时间】:2011-03-22 05:15:50
【问题描述】:

我需要获取大括号之间的文本(如果有)。我确实找到了另一个帖子,但从技术上讲,它没有得到正确回答: Regular expression to extract text between either square or curly brackets

它实际上并没有说明如何实际提取文本。所以我已经走到了这一步:

var cleanStr = "Some random {stuff} here";
var checkSep = "\{.*?\}"; 
if (cleanStr.search(checkSep)==-1) { //if match failed
  alert("nothing found between brackets");
} else {
  alert("something found between brackets");
}

然后如何从字符串中提取“东西”?如果我更进一步,我如何从这个字符串中提取“东西”和“句子”:

var cleanStr2 = "Some random {stuff} in this {sentence}";

干杯!

【问题讨论】:

    标签: javascript regex search extract


    【解决方案1】:

    要提取花括号之间的所有匹配项,您可以执行以下操作:

    function getWordsBetweenCurlies(str) {
      var results = [], re = /{([^}]+)}/g, text;
    
      while(text = re.exec(str)) {
        results.push(text[1]);
      }
      return results;
    }
    
    getWordsBetweenCurlies("Some random {stuff} in this {sentence}");
    // returns ["stuff", "sentence"]
    

    【讨论】:

    • @WastedSpace:不客气!请注意,我添加了缺少的 text 变量声明。
    • 嗨 CMS,很抱歉很痛苦(我想我可以自己解决这个问题),但是你如何将这句话中的所有内容解析为数组值(按此顺序) :一些随机的,{stuff},在这个,{sentence}。谢谢:)
    【解决方案2】:

    创建一个“捕获组”以指示您想要的文本。使用 String.replace() 函数将整个字符串替换为仅对捕获组的反向引用。剩下的就是你想要的文本了。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2013-11-10
      • 1970-01-01
      • 1970-01-01
      • 2019-03-18
      • 2013-08-05
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多