[codewars]Replace With Alphabet Position

codewars

let alphabetPosition = (text) => text.toUpperCase()
.replace(/[^A-Z]/g, '') // 不是A-Z的都用''取代
.split('') // string to array
.map(ch => ch.charCodeAt(0) - 64) // 
.join(' '); // array to string


底下解釋replace的2種範例

// 如果是單個string,就只會取代第一個
var str = 'JO JO ACC';
var newstr = str.replace('JO', 'Apple');
console.log(newstr);  
// Apple JO ACC


// 如果使用regular expression flag g 代表取代每一個
.replace(/_/g," ");
The regex matches the _ character.
The g means Global, and causes the replace call to replace all matches, not just the first one.


// 解釋regular expression 裡的 ^ 符號

注意到了吧?那個 ^ 符號,在字元集合符號(括號[])之內與之外是不同的! 
在 [] 內: 是『反向選擇』
在 [] 外: 則代表定位在行首的意義!
要分清楚喔!

不想要開頭是英文字母-> '^[^a-zA-Z]'