PIXNET Logo登入

碎碎念

跳到主文

murmur

部落格全站分類:財經政論

  • 相簿
  • 部落格
  • 留言
  • 名片
  • 1月 31 週四 201916:46
  • [javascript][轉] 正規表示式

轉自 https://andy6804tw.github.io/2017/11/05/js-tutorial-regx
--

正規表達式



由於最近工作寫 API 動到 Router 的 param 發現必須使用到正規表達式(Regular Expression)才能解決問題所以就來寫這篇文章啦!


正規表達式是什麼?簡單來說他可以幫你定義好格式應用範圍很廣最常見的是在註冊頁面要判斷使用者是否認真乖乖的填入 E-mail 這時候就要有判斷式來檢查囉~


下面舉個例子:


















字元描述字元
Email[a-zA-Z0-9]+@[a-zA-Z0-9.]+ccc@kmit.edu.tw
URLhttp://[a-zA-Z0-9./_]+http://ccc.kmit.edu.tw/mybook/

表達式一覽





























































字元描述
^比對字串開頭 (開始位置)。
$比對字串結尾 (結束位置)。
*零次或以上
+一次或以上
[xyz]包含 xyz 等字元。
[^xyz]不包含 xyz 等字元。
[a-z]字元範圍 a-z。
[^a-z]不包含字元範圍 a-z。
\d比對數字符號。等價於 [0-9]。
\D比對非數字符號。等價於 [^0-9]。
\w比對「英文、數字或底線」。等價於 [A-Za-z0-9_]。
\W比對非「英文、數字或底線」的字元。等價於 [^A-Za-z0-9_]。
x|y比對 x 或 y。

我這邊只列出常見使用到的表達,需要更詳細可以參考這篇文件


範例



看了上面這麼多規則想定霧煞煞,下面就用js語法帶各位逐一解析,這邊會使用到 .test(String) 函示他會回傳true當字串符合正規表達時,反之。


Example 1


這個例子是判斷該字串是否為數字:



  • 第一行只有 [0-9] 代表指檢查第一個故後面輸入字母也是會回傳 true

  • 第二行各位可以發現 [0-9]+ 多了一個 + 代表判斷串列數字是否出現一次或以上

  • 第三行 [^0-9] 代表的是判斷該字串是否非數字

  • 第四行與第三行相比較發現 ^ 擺放的位置不一樣了,放不同的地方就有不同的作用,代表的是字串最前面是否為數字串列,可以跟第六行相比對得正




console.log(/[0-9]/.test('1abc')) // 回傳 true
console.log(/[0-9]+/.test('123')) // 回傳 true
console.log(/[^0-9]+/.test('123')) // 回傳 false
console.log(/^[0-9]+/.test('123')) // 回傳 true
console.log(/^[0-9]+/.test('a123')) // 回傳 false



當然上述的 [0-9] 可以替換成 \d 與 [^0-9]替換成 \D


Example 2


這個例子是判斷該字串是否為英文、數字或底線:



  • 第一行比對該字串是否含有英文、數字或底線,等價於 [A-Za-z0-9_]

  • 的二行可以發線 W變大寫,意思相反,等價於 [^A-Za-z0-9_]




console.log(/\w/.test('1abc_d')) // 回傳 true
console.log(/\W/.test('1abc_d')) // 回傳 false



Example 3


這個例子是判斷段該字串是否有出現的字母:



  • 第一行檢查該字串是否包含 j 或 a 或 v 或 a

  • 第二行是檢查該字串第一個字是否包含 j 或 a 或 v 或 a,及第二個字是否包含數字(記住此組合是連續的故b2不符合)

  • 第三行就是解決第二行例子故中間加一個 . ,這個帶俵可以讓中間有一個字母隨意

  • 第四行與五可做相對應主要是允許中間有多個隨意字母輸入,第三行緊只能一個字母




console.log(/[java]/.test('jack')) // 回傳 true
console.log(/[java]\d/.test('jb2')) // 回傳 false
console.log(/[java].\d/.test('jb2')) // 回傳 true
console.log(/[java].\d/.test('jbbb2')) // 回傳 false
console.log(/[java].+\d/.test('jbbb2')) // 回傳 true



Example 4


這個例子是 or 比對判斷,提供兩個正規表示其中一個成立即可:



  • 第一行都沒有數字或字母故回傳 false

  • 第二與第三行分別個出現數字和字母故回傳 true




console.log(/[0-9]|[a-z]/.test('?')) // 回傳 false
console.log(/[0-9]|[a-z]/.test('?100')) // 回傳 true
console.log(/[0-9]|[a-z]/.test('?abc')) // 回傳 true



(繼續閱讀...)
文章標籤

dizzy03 發表在 痞客邦 留言(0) 人氣(3)

  • 個人分類:Programming
▲top
  • 1月 25 週五 201911:47
  • [Javascript] SweetAlert2中文網站

http://mishengqiang.com/sweetalert2/
好用的sweetalert
(繼續閱讀...)
文章標籤

dizzy03 發表在 痞客邦 留言(0) 人氣(2)

  • 個人分類:Programming
▲top
  • 1月 25 週五 201911:38
  • [DataTable][轉] 實作列的多選功能 - Row selection (multiple rows)

使用dataTable要實作列的多選功能,有使用dataTable分頁的話不能使用HTML & JS取得的方式,因為表格內容會只有當分頁的,抓不到其他分頁內容,必須使用dataTable內建的API才行。
 
方法:
1. 在tr上加上toggleClass語法,選定的列會加上某個class
(繼續閱讀...)
文章標籤

dizzy03 發表在 痞客邦 留言(0) 人氣(0)

  • 個人分類:Programming
▲top
  • 1月 25 週五 201911:32
  • [轉][Font-Awesome] 解決font-awesome的圖示顯示變成方塊的問題

safari
轉自 https://github.com/FortAwesome/Font-Awesome/issues/11946
解答:必須在.fa中加上 font-weight: 900;
.fa, .fas {
      font-weight: 900;
}
(繼續閱讀...)
文章標籤

dizzy03 發表在 痞客邦 留言(0) 人氣(2)

  • 個人分類:Programming
▲top
  • 1月 25 週五 201911:28
  • [CSS][轉] CSS沒有極限 - Checkbox的妙用

轉自 https://wcc723.github.io/css/2013/10/07/css-chechbox/
--
CSS3 新增了:checked的偽元素,它可以判斷目前的checkbox 及 radio 是否有被選核,這樣html就能夠做出基本的點擊功能;並且結合label標籤,label標籤能夠讓樣式的套用更為自由,藉此增加畫面的豐富性。
(繼續閱讀...)
文章標籤

dizzy03 發表在 痞客邦 留言(0) 人氣(2)

  • 個人分類:Programming
▲top
  • 1月 25 週五 201911:18
  • [HTML][轉] HTML <label> 标签的 for 属性

轉自 http://www.w3school.com.cn/tags/att_label_for.asp
for裏頭的值為要綁定元素的id
--
(繼續閱讀...)
文章標籤

dizzy03 發表在 痞客邦 留言(0) 人氣(0)

  • 個人分類:Programming
▲top
  • 1月 22 週二 201910:19
  • [windows][轉] windows 10 未出現登入畫面解決方法


轉自 https://blog.xuite.net/b122422182com/iTeach/496490208
--
發生問題如下
(繼續閱讀...)
文章標籤

dizzy03 發表在 痞客邦 留言(0) 人氣(0)

  • 個人分類:Windows
▲top
  • 1月 22 週二 201910:14
  • [Windows][轉] windows 10 進入安全模式


轉自 https://blog.xuite.net/b122422182com/iTeach/496495813
--
win 8 之後進入安全模式方式改變
(繼續閱讀...)
文章標籤

dizzy03 發表在 痞客邦 留言(0) 人氣(0)

  • 個人分類:Windows
▲top
  • 1月 19 週六 201911:33
  • [Laravel][PHP] 建立Laravel Request物件 - Create a Laravel Request object

$request = new \Illuminate\Http\Request();
 
使用情境:
在function有使用到request參數,又想要保持彈性後面可以帶入其他參數時。
(繼續閱讀...)
文章標籤

dizzy03 發表在 痞客邦 留言(0) 人氣(1)

  • 個人分類:Programming
▲top
  • 1月 18 週五 201922:21
  • [PHP] EXCEL與CSV檔的操作 (重要)

上一篇 [PHP] 解決匯出 CSV 的亂碼問題
雖然是解決匯出CSV的亂碼問題,用EXCEL開啟會正常。
BUT,就是這個BUT
(繼續閱讀...)
文章標籤

dizzy03 發表在 痞客邦 留言(0) 人氣(3)

  • 個人分類:Programming
▲top
«1...484950130»

熱門文章

  • (59)Ggfff
  • (228)[轉] 台鐵火車座位配置,讓你拿到票就知道靠窗還是靠道
  • (891)[Windows] 視窗最大化後發生視窗頂部或最下方出現黑色/白色/灰色空間
  • (405)[轉] 5 個免費 Bilibili 影片下載免安装線上工具推薦!
  • (524)國光號 中興號座位表
  • (506)[Word] Word「第幾頁,共幾頁」選項怎麼不見了? 其實在這裡啦~~
  • (394)[Windows] 如何將iCloud 照片 預設資料夾位置從C槽改為D槽
  • (117)[Windows] (解決)請問win10怎麼刪除微軟注音輸入法的『全形』只要『半形』
  • (90)[excel] Excel 凍結窗格、鎖定欄或列教學,固定標題不捲動
  • (63)[PhpSpreadsheet] PhpSpreadsheet設定儲存格框線樣式 Styling cell borders with PhpSpreadsheet PHP

文章精選

文章搜尋

文章分類

  • 旅遊 (3)
  • AI (2)
  • pixnet (1)
  • 騎士公主 (2)
  • 幹!MafiaWars (14)
  • 神馬三國 (39)
  • DSLR (15)
  • News (9)
  • Finance (65)
  • Estate (4)
  • Windows (78)
  • Programming (481)
  • Nihongo (18)
  • Murmur (176)
  • Application (87)
  • 3C (31)
  • Health (65)
  • ACG (73)
  • Life (111)
  • 未分類文章 (1)

最新文章

  • [轉] 短期交易是零和賽局
  • [轉] 3M WP4000 即淨高效濾水壺,第2代大升級!!3道過濾、1.4公升加大過濾容量、無須更換電池!
  • 健康存摺APP如何看X光片?
  • X.com 網頁版卡住錯誤排除
  • 我想在辦公室泡濾掛式咖啡加牛奶,但是沒有冰箱,有甚麼替代的方式? 2026-01-16更新感想
  • [AI] 物理小問題
  • [AI] 受管理的泡沫
  • [AI] 血壓計的原理
  • [AI] grok image有辦法查找產圖的歷史紀錄嗎? 包含提示詞
  • [轉] 關於在高山上失溫,27個您一定要知道的重點

參觀人氣

  • 本日人氣:
  • 累積人氣:

GoogleAdsense