[英]Not Understanding How to Capitalizing Text in Angular
我的朋友帮助我在AngularJS中编写了一个自定义过滤器,以帮助我为数组之一大写对象中的值之一。 但是没有时间向我解释他的所作所为。 只是想知道是否有人可以帮助我理解以下代码块:
.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,
我了解他正在将字符串更改为所有小写字母,以便他最终可以将其转换为大写字符串,但这是什么: ( /\\b([az])/g
没有真正遵循他在那所做的事情。
请帮忙!
name = ( name === undefined || name === null ) ? '' : name;
这样可以确保以后使用该name
时,该name
永远不会为null或未定义。
return name.toString().toLowerCase().replace( /\b([a-z])/g, function(change) {
return change.toUpperCase();
});
};
首先将所有内容更改为小写,然后将每个单词的第一个字符替换为大写版本。 \\b
是一个边界匹配器 :
例如,假设name = "capItalIze me"
然后
name.toString().toLowerCase(); // => name = "capitalize me"
/\\b([az])/g // means find first letter of every word so will match "c" and "m"
replace( /\\b([az])/g, function(change) {return change.toUpperCase();});} // change 'c' to 'C' and 'm' to 'M';
在第一部分中:
name = ( name === undefined || name === null ) ? '' : name;
他检查字符串在其“定义”中是否真实,检查字符串是否未定义或为null(因为null / undefined字符串可能会引发错误),否则,将其设置为空字符串以避免错误。
第二部分,他使用regex
表达式来将字符串修改为过滤器规范。 您可以在此处阅读有关regex
表达式的信息 。
我不太熟悉regex,但是当他将所有字符都转换为小写字母时,我认为您是对的
,请检查上面针对regex的注释,但是,如果是这种情况,他可以这样做。 。
string = string.toLowerCase()
string = string.substr(0, 1).toUpperCase() + string.substr(1);
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.