Regular Expression 在我們寫前端常常會用到:
找資料、驗證資料、等等。
譬如說,我們要用戶輸入的Email,需要包含"@",前面後面也都要有英文符號。
這時候Regular Expression就派上用場啦。
使用常數的const rule = new RegExp('')
可以幫我們增加效能。
Regular expression可以搭配String的
match(), matchAll(), replace(), replaceAll(), search(), split()
功能使用,達到驗證、查找、擷取等目的。
不過我們最常用的就是Google然後把搜尋到的答案直接貼上,
今天來徒手來學、複習一下Regular Expression吧!
/把規則包起來/
/g 全部搜尋(global search)
* 這個字母匹配0-多次
+ 匹配1-多次
? 匹配0-1次
^ 以什麼為開始
$ 以什麼為結尾
[^] 排除字符
- 範圍
\跳脫符號
\d 匹配數字
\. 匹配任何字符
[abc] 匹配[]內其中一個字
{3} 匹配次數3次
{3,5} 匹配次數3次到小於5次
\s 匹配空格
() 組合
(cats|dogs) 擇一個
//匹配或排除範圍
[0-6] 匹配0-6其中一個數字
[^n-p] 匹配任何一個英文字母,除了n-p
\d\d\d 匹配三位數字
a{3} 匹配a 1-3次
[wxy]{5} 匹配5個字母,可以是wxy任一個
^(file_.+)\.pdf$ 以file_為開頭,後面無限個字幅,以.pdf做結尾
var re = /\w+\s/g;
var str = "fee fi fo fum";
var myArray = str.match(re);
//匹配英文字
const myRe = /d(b+)d/g;
const myArray = myRe.exec("cdbbdbsbz");
//匹配所有,返回Array
const regexp = /t(e)(st(\d?))/g;
const str = 'test1test2';
const array = [...str.matchAll(regexp)];
console.log(array[0]);
// expected output: Array ["test1", "e", "st1", "1"]
返回true or false
const str = 'table football';
const regex = new RegExp('foo*');
const globalRegex = new RegExp('foo*', 'g');
console.log(regex.test(str));
// expected output: true
console.log(globalRegex.lastIndex);
// expected output: 0
const paragraph = 'The quick brown fox jumps over the lazy dog. If the dog barked, was it really lazy?';
// any character that is not a word character or whitespace
const regex = /[^\w\s]/g;
console.log(paragraph.search(regex));
// expected output: 43
const p = 'The quick brown fox jumps over the lazy dog. If the dog reacted, was it really lazy?';
console.log(p.replace('dog', 'monkey'));
// expected output: "The quick brown fox jumps over the lazy monkey. If the dog reacted, was it really lazy?"
const regex = /Dog/i;
console.log(p.replace(regex, 'ferret'));
// expected output: "The quick brown fox jumps over the lazy ferret. If the dog reacted, was it really lazy?"
const str = 'The quick brown fox jumps over the lazy dog.';
const words = str.split(' ');
console.log(words[3]);
// expected output: "fox"
const chars = str.split('');
console.log(chars[8]);
// expected output: "k"
const strCopy = str.split();
console.log(strCopy);
// expected output: Array ["The quick brown fox jumps over the lazy dog."]
以上案例都摘自修改自MDN-Regular Expression
正則表達式線上學習資源
回頭再來修改一下。
感恩。
環遊非洲第29天-非洲當代流行音樂
談到非洲流行音樂,你還以為是什麼傳統的部落音樂嗎?
那你可就錯啦,非洲流行音樂超級潮的。
其中最受歡迎,也是國際知名的是西非奈及利亞的Afro Beats,結合
奈及利亞的Yoruba music、jazz、Highlife和funk rhythms的結合,使用打擊樂器和人聲,
近幾年也在歐美大流行,Drake、Beyoncé 也和奈及利亞的音樂人WizKid 等合作,將Afro Beats融入她的專輯和音樂裡。然後是南非的Amapiano,將house音樂加入 lounge music、爵士形成的一種新風格。
南非街頭隨處都可以聽到Amapiano,路邊的汽車把音響開到最大放的就是Amapiano
喜歡House音樂的人也可以聽聽看。