说有像
这样的字符串“... width = 600 height = 1200 ......”。
我希望在"width="
之后和" "
之前获取字符串,即600
。
我该怎么做?
答案 0 :(得分:13)
使用带有match()功能的正则表达式:
var str = "... width=600 height=1200 ...",
width = str.match(/\bwidth=(\d+)/);
if (width)
alert(width[1]);
//-> 600
提供的正则表达式查找单词边界(\b
),后跟文字字符串width=
,后跟一个或多个数字,这些数字也被捕获为子表达式({{1 }})。此子表达式捕获将添加到match返回的数组中。
答案 1 :(得分:3)
您可以使用正则表达式来解析它:
var matches = "... width=600 height=1200 ...".match(/width=(\d+)/);
if (matches) {
alert(matches[1]);
}
但是,您应该考虑发布更多信息。您可能正在尝试解决可以避免的问题,就像评论中所述的其他问题一样。
答案 2 :(得分:2)
我同意寂寞的一句话,因为如果你能给我们更多的背景,感觉就像这里有一个更好的解决方案,但是说,我会给我两分钱。
您可以尝试这样的事情:
var str = "width=600 height=1200";
$('<div ' + str + '>').attr('width');
这意味着您正在利用HTML解析器从字符串中获得合理的结果。
使用您在OP评论中发布的信息进行更新:
您想要检查此字符串的width属性:
<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');
我将为您保存“不要使用正则表达式解析HTML”rant / freakout答案的强制性链接,但它绝对适用于此。