---
# System prepended metadata

title: 正規表達式範例
tags: [Javascript]

---

---
tags: Javascript,
disqus: hackmd
---

# 正規表達式範例

生日

符合規則: dd/mm/yyyy
```
/^([\d]{2}[/])([\d]{2}[/])([\d]{4})$/g
```


瘋狂模式(純粹好玩，很容易爆掉)
```
/^([0][1-9]|[1-2][0-9]|[3][0-1])[\/]([0-1][1-9]|[01][0-2])[\/](19|20)([\d]{2})$/g
```
Day => 限制數字須為 01-31之間
Month => 限制數字須為 01-12之間
Year => 限制數字須為 19 或 20 開頭的四位數

=====================================================

Email

請參考這個神網
http://emailregex.com/

也可以自己寫一個簡易的

=====================================================

身分證字號

符合規則：第一個字為英文(可大小寫)，後面為9位數數字
```
/^\[a-zA-z]([0-9]{9})$/g
```
=====================================================

帳號

符合規則：4~15 碼英文大小寫及數字
```
/^([a-zA-Z0-9]){4,15}$/g
```
=====================================================

密碼

符合規則：6-12 大小寫英文及數字(密碼中至少要包含一個英文大寫)
```
/^(?=.*[A-Z])[a-zA-Z0-9]{6,12}$/g
```
=====================================================

暱稱

符合規則：名稱中不可包含 {}[]"", 並且僅能輸入 2-10字元
```
/^[^{}\]\["]{2,10}$/g
```
=====================================================

真實姓名

符合規則：不可輸入數字、空白及特殊符號 最多6字
```
/^[a-zA-Z\u4e00-\u9fa5]{1,6}$/g
```
=====================================================

英文姓名

符合規則：可輸入英文大小寫、空白、單引號及底線
```
/^[a-zA-Z _']+$/g
```
=====================================================

國家

符合規則：不能輸入特殊符號,但可以輸入空格
```
/^([^\W]|[ \u4e00-\u9fa5])+$/g
```
=====================================================

手機

符合規則：僅能數字但可以包含+開頭
```
/^([+]?)([\d]+)$/g
```
=====================================================

可以去除字首字尾為空白

```
str.value.split(/([\S][\w\W\s]+[\S])/g)[1]
```

=====================================================

可以把包含小數點的數字寫成以下:
ex: 123.34 輸出成 => 『整數：123, 小數點：0.34』
```
str.value.replace(/([0-9]+)[\.]?([\d]+)?/, '『整數：$1, 小數點：0.$2』');
```

也可以搭配驗證，確認輸入為數字後再使用split分開數字然後再組起來
```
/^([\d]+)(([\.][\d]+)?)$/g
```
```javascript=
var splitString = function2.value.split('.');

if (splitString[1] &&  splitString[1] !== '0') {
    function2Notice.innerHTML = '『整數：'+ splitString[0] +', 小數點：0.'+ splitString[1] +'』';
} else if (result) {
    function2Notice.innerHTML = '『整數：'+ splitString[0] +',』';
}

```