Javascript 不理解如何在英语中大写文本
我的朋友帮助我用AngularJS编写了一个自定义过滤器,以帮助我将对象中的一个值资本化为数组中的一个值。但是没有时间向我解释他做了什么。我只是想知道是否有人能帮助我理解这段代码:Javascript 不理解如何在英语中大写文本,javascript,angularjs,Javascript,Angularjs,我的朋友帮助我用AngularJS编写了一个自定义过滤器,以帮助我将对象中的一个值资本化为数组中的一个值。但是没有时间向我解释他做了什么。我只是想知道是否有人能帮助我理解这段代码: .filter('capitalizetext', function() { return function(name) { name = ( name === undefined || name === null ) ? '' : name; return name.toString().toLowerCas
.filter('capitalizetext', function() {
return function(name) {
name = ( name === undefined || name === null ) ? '' : name;
return name.toString().toLowerCase().replace( /\b([a-z])/g, function(change) {
return change.toUpperCase();
});
};
})
我不明白的第一部分是:
name = ( name === undefined || name === null ) ? '' : name;
return name.toString().toLowerCase().replace( /\b([a-z])/g,
他为什么这样做
我不明白的第二部分是:
name = ( name === undefined || name === null ) ? '' : name;
return name.toString().toLowerCase().replace( /\b([a-z])/g,
我知道他正在将字符串更改为所有小写,以便最终将其转换为大写字符串,但这是什么:(/\b([a-z])/g
没有真正了解他在那里的所作所为
请帮忙!在第一部分:
name = ( name === undefined || name === null ) ? '' : name;
他检查字符串在他的“定义”中是否真实,检查它是未定义的还是空的(因为空/未定义的字符串可能会引发错误),否则,他将它设置为空字符串以避免错误
第二部分,他使用regex
表达式将字符串修改为过滤器规范。你可以阅读regex
表达式。我对regex不太熟悉,但我认为当他将所有字符转换为小写时,你的思路是正确的,请查看上面的注释以了解regex解释,但是,如果这样做的话如果是这样的话,他可以这么做
string = string.toLowerCase()
string = string.substr(0, 1).toUpperCase() + string.substr(1);
这确保以后使用时,name
永远不会为null或未定义
return name.toString().toLowerCase().replace( /\b([a-z])/g, function(change) {
return change.toUpperCase();
});
};
首先将所有内容更改为小写,并将每个单词的第一个字符替换为大写版本:
例如,假设name=“大写我”
然后
name.toString().toLowerCase();//=>name=“大写我”
/\b([a-z])/g//表示查找每个单词的第一个字母,以便匹配“c”和“m”
replace(/\b([a-z])/g,函数(change){return change.toUpperCase();}}//将'c'更改为'c','m'更改为'm';
第一部分只是确保如果使用未定义或null参数调用函数,它将返回空字符串。第二部分使用a查找单词边界(
\b
)后面的所有字母,并将其更改为大写。使用带有.replace()
的正则表达式可以将每个单词大写,例如。,“你好吗?”会变成“你好吗?”谢谢,这肯定能解释它!那么/\是用来做大写的吗?