[英]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.