在Javascript中提取子字符串的更简单方法

时间:2011-12-06 11:28:27

标签: javascript regex

我正在尝试从Javascript中的字符串中提取与给定模式匹配的子字符串。 例如:

var classProp = 'active category_games',
    match = classProp.match(/category_[a-z]+\b/),
    category;
if(match !== null && match.length > 0){
  category = match[0];
}

有没有更简单的方法来实现这一目标?单线,最好是?

4 个答案:

答案 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的答案。