---
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] +',』';
}
```