###### tags: `通用語法` # 正則表達式筆記 ## 基本用法 > 正則表達式在很多程式語言或處理資料時都派得上用場,方便整理欄位資料,或用於欄位值輸入驗證...等等 - 實體字元,直接取得該字元:**2022** - 只取得**Apple**與**apple**:**[Aa]pple** - 只匹配**Lion**、**liop**:**[Ll]io[np]** - 只匹配**abcdefgh**、**ABCDEFGH**、**0123456789**:**[a-h 0-9 A-H]** :::success -意義等同於中文的到 ( ex: a到h ) ::: - 匹配特殊符號使用**[]、**-**、**()**:**[\-\[\]\(\)]** :::info \可對特殊符號進行匹配 ::: - 愛後面排除你:**.*愛[^你]** :::success ^後方表示要排除的字元 ::: ## 快捷用法 - 匹配任何符號:**\w** - 匹配任何數字:**\d** - 匹配空白或換行:**\s** :::warning 範例:code、code jiaonang、code jiaonang、code www、 code jiaonang:**[c-g]\s** ::: - 將一個詞語單獨匹配,該詞語能於"<詞語>"、-<詞語>-之中:**\b** :::success 範例:code、code jiaonang、www.code、code-jiaonang:**\bcode\b** ::: - 以什麼開始:**^** :::warning 範例:以JS詞語開始:**^JS** ::: - 以什麼結束:**$** :::success 範例:以CSS詞語結束:**CSS$** ::: - 表示任意字符:**.** :::danger 範例:ear、parked、barked:**.ar** 注意:在[]不得使用 ::: - ?左右字元皆可被匹配:**<字元>?<字元>** :::success 範例:favorite、favourite、favorite、favourite:**favou?rite** ::: ## 多個字元匹配用法 - 定義字元出現次數:**{次數數值}** :::warning 範例1:0254、0211、0512:**\d{4}** 範例2:222-88888、021-45678:**\d{3}\-\d{5}** ::: - 定義出現次數的區間:**{多少,(到)多少}** :::success 範例:025-1452685、014-58963241、0799-1111111、0011-8475962:**\d{3,4}\-\d{7,8}** ::: :::danger 注意:,後面不能空白 ( coding的好習慣在此不適用 :P ) ::: - 匹配1~多個字元:**+**、**{1,}** - 匹配0~多個字元:*****、**{0,}** ## 實作練習 **1.** > 匹配==18111234589==、==18711001111==、==13713201111==、==13712345678==、==14712345897==、==15721565489==。[color=#7BD4ED] :::warning 解答:^1[3-8]\d{9} ::: **2.** > 匹配==https://code.com/==、==http://google.com/==、==https://codejn/==、==https://google.com/==。[color=#7BD4ED] :::warning 解答:https?:// ::: **3.** > 匹配以zo結尾的所有詞語。[color=#7BD4ED] :::warning 解答:zo$ ::: **4.** > 匹配==王敏 0001==、==王磊 1234==、==王芳芳 0503==但是不能匹配**王芳 04**。[color=#7BD4ED] :::warning 解答:^王...{3} ::: **5.** > (1) 格式要這樣:2023-03-05 > > (2) 月份僅3月和4月 > > (3) 年份只要2023年 > > (4) 日不超過30 [color=#7BD4ED] > :::warning 解答:^2023-(0[3-4])-([0-2][1-9]|30)$ ::: **6.** > 只允許輸入中文 [color=#7BD4ED] :::warning ```javascript= function isChinese(str) { return /^[\u4e00-\u9fa5]+$/.test(str); } ``` :::
×
Sign in
Email
Password
Forgot password
or
By clicking below, you agree to our
terms of service
.
Sign in via Facebook
Sign in via Twitter
Sign in via GitHub
Sign in via Dropbox
Sign in with Wallet
Wallet (
)
Connect another wallet
New to HackMD?
Sign up