取一个字符串并大写第一个字符 - 为什么这会杀死浏览器

时间:2011-04-25 18:50:00

标签: javascript regex

给出像bobby这样的字符串,我想要函数返回Bobby。

我有以下内容:

// Capitalizes the first letter.
function toTitleCase(str) {
    return str.replace(/(?:^|\s)\w/g, function(match) {
        return match.toUpperCase();
    });
}

由于某些原因,这是杀死浏览器,任何想法为什么?我是否遗漏了可能导致内存问题的REGEX?感谢

1 个答案:

答案 0 :(得分:2)

为什么要使用正则表达式来做这样的事情?

var s = "my string";
s = s.substring(0, 1).toUpperCase() + s.substring(1);
console.log(s);

正则表达相当使用比原生字符串函数更昂贵,因此只有在没有其他任何东西可以解决您的特定问题时才能使用它。

修改

另一方面,我不确定为什么它会导致您的浏览器保释,我在FF或Chrome中运行您所拥有的内容没有任何问题。