題目連結
解法
Javascript
function validatePIN(pin) {
return /^(\d{4}|\d{6})$/.test(pin);
}
Typescript
function validatePIN(pin: string): boolean {
return /^(\d{4}|\d{6})$/.test(pin);
}
心得
Regex正規表達式
拆解/^(\d{4}|\d{6})$/
- / ^(\d{4}|\d{6})$ /
- 兩個斜線
/ /
或是new RegExp()
來建立一個RegExp物件
- ^ (\d{4}|\d{6}) $
^
代表字串的開始位置,表示要從字串的開頭進行匹配$
代表字串的結束位置,表示要在字串的結尾進行匹配
- \d{4} | \d{6}
|
表示 或(or),|
前後的字串都可以比對
- \d{4} \d{6}
\d
比對一個數字,相等於/[0-9]/
{n}
連續出現n次- 兩個合在一起就是匹配連續
n
次的\d
,n個連續的數字 - 此題目就是匹配 四個或六個連續的數字
5.統整/^(\d{4}|\d{6})$/
- 從頭到尾比對剛好4位或6位的數字
- 也可以說 限4位數或6位數