我正在尝试从Javascript中的字符串中提取与给定模式匹配的子字符串。 例如:
var classProp = 'active category_games',
match = classProp.match(/category_[a-z]+\b/),
category;
if(match !== null && match.length > 0){
category = match[0];
}
有没有更简单的方法来实现这一目标?单线,最好是?
答案 0 :(得分:7)
类别之前是否应该有\b
?
如果匹配失败,你可以通过提供一个空数组来缩短它;
category = (classProp.match(/category_[a-z]+\b/) || [""])[0];
答案 1 :(得分:0)
嗯,这已经非常接近单线。您可以简化您的" if"阻止以下内容:
if(match){
category = match[0];
}
答案 2 :(得分:0)
怎么样:
try { var category = 'active category_games'.match(/category_[a-z]+\b/).pop(); } catch(e) {}
答案 3 :(得分:0)
如果你真的想要一个单行:
var category = (classProp.match(/category_[a-z]+\b/) || "")[0] || undefined;
但我会建议你使用@ ziesemer的答案。