代码之家  ›  专栏  ›  技术社区  ›  branchgabriel

将jquery regex match中匹配的值赋给字符串变量

  •  1
  • branchgabriel  · 技术社区  · 14 年前

    我做错了。我知道。

    我想将regex的结果匹配的文本赋给字符串var。

    基本上,regex应该在两个冒号之间拉出任何东西。

    所以 废话:xx:blahdeeblah 将导致 XX

    var matchedString= $(current).match('[^.:]+):(.*?):([^.:]+');
    alert(matchedString);
    

    我想让它把xx放到matchedstring变量中。

    我检查了jquery文档,他们说match应该返回一个数组。(字符串字符数组?)

    当我运行这个时,没有发生任何事情,控制台中没有错误,但是我测试了regex,它在JS之外工作。我开始认为我只是在做regex错误,或者我完全不知道match函数是如何工作的。

    1 回复  |  直到 14 年前
        1
  •  5
  •   Andy E    14 年前

    我检查了jquery文档,他们说match应该返回一个数组。

    jquery不存在这样的方法。 match 是字符串的标准javascript方法。所以用你的例子,这可能是

    var str = "blah:xx:blahdeeblah";
    var matchedString = str.match(/([^.:]+):(.*?):([^.:]+)/);
    alert(matchedString[2]);
    // -> "xx"
    

    但是,您真的不需要正则表达式。您可以使用另一个字符串方法, split() 要使用分隔符将字符串划分为字符串数组,请执行以下操作:

    var str = "blah:xx:blahdeeblah";
    var matchedString = str.split(":");  // split on the : character
    alert(matchedString[1]);
    // -> "xx"