2019年11月12日 星期二

正規表示法 Regular Expression 筆記

工作上不時都會有用到正規表示法比對字串的時候,但每次要用時都要重新在研究一下語法日久下來也花了不少的時間,因此在這裡將用過的語法記錄下來供以後查看,以下範例將以 javascript 為主,其它語言應該都大同小異。


1. 需包含英文字母

/^(?=.*[a-zA-Z]).+$/.test(value)

2. 需至少包含一個小寫英文字母及一個大寫字母

/^(?=.*[a-z])(?=.*[A-Z]).+$/.test(value)

3. 需至少包含一個數字

/^(?=.*\d).+$/.test(value)

4. 需至少包含以下一種 !、@、#、$、%、^、&、*、_ 特殊符號之一

/^.*[!@#$%^&*_].+$/.test(value)

5. 不能含有以下字元 -、'、"、(、)、{、}、[、]、:、;、<、>、?、,、.、|、\、/ 及空白字元

/^[^()\-=\[\]{};':"\\|,.<>\/?\s]+$/.test(value)

6. 開頭需大寫字母且不能含有空白字元

/^[A-Z]\S+$/.test(value)

7. Email 驗證

/^(([^<>()\[\]\\.,;:\s@@"]+(\.[^<>()\[\]\\.,;:\s@@"]+)*)|(".+"))@@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/.test(value)

8. 只能包含中文字串、數字、英文字母及底線

/^[\u4e00-\u9fa5_a-zA-Z0-9]+$/.test(value)

9. 取代字串裡最後一個指定字元(範例為取代最後一個 .)

var result = "my.demo.jpg".replace(/\.(?!.*\.)/, '-s.')
console.log(result);    // Output: my.demo-s.jpg  




參考資料

[Larry Lu] 用 Regular Expression 做字串比對

訪客統計