2011-04-25 67 views
3

给出了像bobby这样的字符串,我想返回Bobby的函数。取一个字符串并大写第一个字符 - 为什么这个浏览器

我有以下几点:

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

出于某种原因,这是杀害浏览器,任何想法,为什么?我是否错过了可能导致内存问题的REGEX?谢谢

+0

哪个浏览器? – Hogan 2011-04-25 18:55:13

+0

请定义“查杀浏览器”。你是在某种循环中运行这些代码吗? – 2011-04-25 18:55:32

+2

它不会杀死我的浏览器......顺便说一句,“\ b”和你的“^ | \ s”模式做同样的事情 - 它是一个零宽度匹配器,用于“分词”。你的模式可以简单地为'/ \ b \ w/g' – Pointy 2011-04-25 18:56:00

回答

2

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

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

正则表达式是相当比本地字符串函数使用更贵一点,因此只能用于在没有其他将解决您的特定问题。

编辑

在另一方面,我不知道为什么它使你的浏览器保释,我有没有运行问题,你有两种FF或Chrome。

+3

我相信他想大写字符串中每个单词的第一个字母。 – Hogan 2011-04-25 18:56:32

+0

加上字符串可能是“bobby”。 – Pointy 2011-04-25 18:57:56

+0

@hogan:啊。在这种情况下,它是可以争论的,这将是最好的使用:) – 2011-04-25 18:58:52

相关问题