簡體   English   中英

不了解如何在Angular中大寫文本

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

然后

  1. name.toString().toLowerCase(); // => name = "capitalize me"
  2. /\\b([az])/g // means find first letter of every word so will match "c" and "m"
  3. 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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM