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

如何将字符串的一部分与jQuery匹配?

  •  3
  • Deckard  · 技术社区  · 14 年前

    说有一根绳子像

    我想在 "width=" 在那之前 " " ,这是 600

    我该怎么做?

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

    将正则表达式与 match()

    var str = "... width=600 height=1200 ...",
        width = str.match(/\bwidth=(\d+)/);
    
    if (width)
        alert(width[1]); 
        //-> 600
    

    提供的正则表达式查找单词边界( \b )后跟文本字符串 width= ,后跟一个或多个数字,这些数字也作为子表达式捕获( (\d+)

        2
  •  3
  •   jwueller    14 年前

    您可以使用正则表达式来分析:

    var matches = "... width=600 height=1200 ...".match(/width=(\d+)/);
    if (matches) {
        alert(matches[1]);
    }
    

    不过,你应该考虑发布更多信息。你可能在试图解决一个可以避免的问题,就像评论中提到的其他问题一样。

        3
  •  2
  •   nickf    14 年前

    你可以试试这样的:

    var str = "width=600 height=1200";
    $('<div ' + str + '>').attr('width');
    

    这意味着您正在利用HTML解析器从字符串中获得合理的结果。


    更新您在操作评论中发布的信息:

    <DIV><EMBED 
        height=311 type=application/x-shockwave-flash
        width=700 src=http://www.youtube.com/v/0O2Rq4HJBxw
        allowfullscreen="true" allowscriptaccess="always"
        wmode="transparent">
    </EMBED></DIV>
    

    在这种情况下,我强烈建议使用上述方法。

    var str = "<DIV><EMBED height ... etc";
    $(str).find('embed').attr('width');
    

    我将为您保存到“不要使用regex来解析HTML”的必要链接,但这里绝对适用。