JS常用正則表示式備忘錄
摘要: 玩轉正則表示式。
- 原文:JS常用正則表示式備忘錄
- 作者:前端小智
Fundebug經授權轉載,版權歸原作者所有。
正則表示式或“regex”用於匹配字串的各個部分 下面是我建立正則表示式的備忘單。
匹配正則
使用 .test()
方法
let testString = "My test string";
let testRegex = /string/;
testRegex.test(testString);
匹配多個模式
使用操作符號 |
const regex = /yes|no|maybe/;
忽略大小寫
使用i
標誌表示忽略大小寫
const caseInsensitiveRegex = /ignore case/i; const testString = 'We use the i flag to iGnOrE CasE'; caseInsensitiveRegex.test(testString); // true
提取變數的第一個匹配項
使用 .match()
方法
const match = "Hello World!".match(/hello/i); // "Hello"
提取陣列中的所有匹配項
使用 g
標誌
const testString = "Repeat repeat rePeAT"; const regexWithAllMatches = /Repeat/gi; testString.match(regexWithAllMatches); // ["Repeat", "repeat", "rePeAT"]
匹配任意字元
使用萬用字元.
作為任何字元的佔位符
// To match "cat", "BAT", "fAT", "mat" const regexWithWildcard = /.at/gi; const testString = "cat BAT cupcake fAT mat dog"; const allMatchingWords = testString.match(regexWithWildcard); // ["cat", "BAT", "fAT", "mat"]
用多種可能性匹配單個字元
- 使用字元類,你可以使用它來定義要匹配的一組字元
- 把它們放在方括號裡
[]
//匹配 "cat" "fat" and "mat" 但不匹配 "bat"
const regexWithCharClass = /[cfm]at/g;
const testString = "cat fat bat mat";
const allMatchingWords = testString.match(regexWithCharClass); // ["cat", "fat", "mat"]
匹配字母表中的字母
使用字符集內的範圍 [a-z]
const regexWidthCharRange = /[a-e]at/;
const regexWithCharRange = /[a-e]at/;
const catString = "cat";
const batString = "bat";
const fatString = "fat";
regexWithCharRange.test(catString); // true
regexWithCharRange.test(batString); // true
regexWithCharRange.test(fatString); // false
匹配特定的數字和字母
你還可以使用連字元來匹配數字
const regexWithLetterAndNumberRange = /[a-z0-9]/ig;
const testString = "Emma19382";
testString.match(regexWithLetterAndNumberRange) // true
匹配單個未知字元
要匹配您不想擁有的一組字元,使用否定字符集 ^
const allCharsNotVowels = /[^aeiou]/gi;
const allCharsNotVowelsOrNumbers = /[^aeiou0-9]/gi;
匹配一行中出現一次或多次的字元
使用 +
標誌
const oneOrMoreAsRegex = /a+/gi;
const oneOrMoreSsRegex = /s+/gi;
const cityInFlorida = "Tallahassee";
cityInFlorida.match(oneOrMoreAsRegex); // ['a', 'a', 'a'];
cityInFlorida.match(oneOrMoreSsRegex); // ['ss'];
匹配連續出現零次或多次的字元
使用星號 *
const zeroOrMoreOsRegex = /hi*/gi;
const normalHi = "hi";
const happyHi = "hiiiiii";
const twoHis = "hiihii";
const bye = "bye";
normalHi.match(zeroOrMoreOsRegex); // ["hi"]
happyHi.match(zeroOrMoreOsRegex); // ["hiiiiii"]
twoHis.match(zeroOrMoreOsRegex); // ["hii", "hii"]
bye.match(zeroOrMoreOsRegex); // null
惰性匹配
- 字串中與給定要求匹配的最小部分
- 預設情況下,正則表示式是貪婪的(匹配滿足給定要求的字串的最長部分)
- 使用
?
阻止貪婪模式(惰性匹配 )
const testString = "catastrophe";
const greedyRexex = /c[a-z]*t/gi;
const lazyRegex = /c[a-z]*?t/gi;
testString.match(greedyRexex); // ["catast"]
testString.match(lazyRegex); // ["cat"]
匹配起始字串模式
要測試字串開頭的字元匹配,請使用插入符號^
,但要放大開頭,不要放到字符集中
const emmaAtFrontOfString = "Emma likes cats a lot.";
const emmaNotAtFrontOfString = "The cats Emma likes are fluffy.";
const startingStringRegex = /^Emma/;
startingStringRegex.test(emmaAtFrontOfString); // true
startingStringRegex.test(emmaNotAtFrontOfString); // false
程式碼部署後可能存在的BUG沒法實時知道,事後為了解決這些BUG,花了大量的時間進行log 除錯,這邊順便給大家推薦一個好用的BUG監控工具 Fundebug。
匹配結束字串模式
使用 $
來判斷字串是否是以規定的字元結尾
const emmaAtBackOfString = "The cats do not like Emma";
const emmaNotAtBackOfString = "Emma loves the cats";
const startingStringRegex = /Emma$/;
startingStringRegex.test(emmaAtBackOfString); // true
startingStringRegex.test(emmaNotAtBackOfString); // false
匹配所有字母和數字
使用\word
簡寫
const longHand = /[A-Za-z0-9_]+/;
const shortHand = /\w+/;
const numbers = "42";
const myFavoriteColor = "magenta";
longHand.test(numbers); // true
shortHand.test(numbers); // true
longHand.test(myFavoriteColor); // true
shortHand.test(myFavoriteColor); // true
除了字母和數字,其他的都要匹配
用\W
表示 \w
的反義
const noAlphaNumericCharRegex = /\W/gi;
const weirdCharacters = "!_$!!";
const alphaNumericCharacters = "ab283AD";
noAlphaNumericCharRegex.test(weirdCharacters); // true
noAlphaNumericCharRegex.test(alphaNumericCharacters); // false
匹配所有數字
你可以使用字符集[0-9]
,或者使用簡寫 \d
const digitsRegex = /\d/g;
const stringWithDigits = "My cat eats $20.00 worth of food a week.";
stringWithDigits.match(digitsRegex); // ["2", "0", "0", "0"]
匹配所有非數字
用\D
表示 \d
的反義
const nonDigitsRegex = /\D/g;
const stringWithLetters = "101 degrees";
stringWithLetters.match(nonDigitsRegex); // [" ", "d", "e", "g", "r", "e", "e", "s"]
匹配空格
使用 \s
來匹配空格和回車符
const sentenceWithWhitespace = "I like cats!"
var spaceRegex = /\s/g;
whiteSpace.match(sentenceWithWhitespace); // [" ", " "]
匹配非空格
用\S
表示 \s
的反義
const sentenceWithWhitespace = "C a t"
const nonWhiteSpaceRegex = /\S/g;
sentenceWithWhitespace.match(nonWhiteSpaceRegex); // ["C", "a", "t"]
匹配的字元數
你可以使用 {下界,上界}
指定一行中的特定字元數
const regularHi = "hi";
const mediocreHi = "hiii";
const superExcitedHey = "heeeeyyyyy!!!";
const excitedRegex = /hi{1,4}/;
excitedRegex.test(regularHi); // true
excitedRegex.test(mediocreHi); // true
excitedRegex.test(superExcitedHey); //false
匹配最低個數的字元數
使用{下界, }
定義最少數量的字元要求,下面示例表示字母 i
至少要出現2次
const regularHi = "hi";
const mediocreHi = "hiii";
const superExcitedHey = "heeeeyyyyy!!!";
const excitedRegex = /hi{2,}/;
excitedRegex.test(regularHi); // false
excitedRegex.test(mediocreHi); // true
excitedRegex.test(superExcitedHey); //false
匹配精確的字元數
使用{requiredCount}
指定字元要求的確切數量
const regularHi = "hi";
const bestHi = "hii";
const mediocreHi = "hiii";
const excitedRegex = /hi{2}/;
excitedRegex.test(regularHi); // false
excitedRegex.test(bestHi); // true
excitedRegex.test(mediocreHi); //false
匹配0次或1次
使用 ?
匹配字元 0 次或1次
const britishSpelling = "colour";
const americanSpelling = "Color";
const languageRegex = /colou?r/i;
languageRegex.test(britishSpelling); // true
languageRegex.test(americanSpelling); // true
關於Fundebug
Fundebug專注於JavaScript、微信小程式、微信小遊戲、支付寶小程式、React Native、Node.js和Java線上應用實時BUG監控。 自從2016年雙十一正式上線,Fundebug累計處理了10億+錯誤事件,付費客戶有Google、360、金山軟體、百姓網等眾多品牌企業。歡迎大家免費試用!
相關推薦
JS常用正則表示式備忘錄
摘要: 玩轉正則表示式。 原文:JS常用正則表示式備忘錄 作者:前端小智 Fundebug經授權轉載,版權歸原作者所有。 正則
常用正則表示式大全,手機 電話 郵箱 身份證 最嚴格的驗證 IP地址 網址 日期等,一般前臺js驗證,來這裡就夠了
分享一下我老師大神的人工智慧教程!零基礎,通俗易懂!http://blog.csdn.net/jiangjunshow 也歡迎大家轉載本篇文章。分享知識,造福人民,實現我們中華民族偉大復興!  
Javascript常用正則表示式以及JS常見正則表示式筆試題
JS正則表示式,在表單驗證等方面都有應用,下面結合學習經過,整理一些初學 者所需要掌握的一些基本JS正則規則: 1.正則表示式基礎語法練習 (1)校驗郵政編碼(由六位組成) 這裡要注意,不能寫成/
JS的常用正則表示式 驗證密碼使用者名稱等JS正則
JS的正則表示式 //校驗是否全由數字組成 function isDigit(s) { var patrn=/^[0-9]{1,20}$/; if (!patrn.exec(s)) return false return true } //校驗登入名:只能輸入5-20個以字母開頭、可帶數字、“_
常用的JS驗證—正則表示式
1。date日期var _reg = /^[0-9]{4}-(((0?[13578]|(10|12))-(0?[1-9]|[1-2][0-9]|3[0-1]))|(0?2-(0[1-9]|[1-2][
JS的常用正則表示式 驗證密碼
JS的正則表示式 強:字母+數字+特殊字元 ^(?![a-zA-z]+$)(?!\d+$)(?![[email protected]#$%^&*]+$)(?![a-zA-z\d]+$)(?![[emai
js 正則表示式判斷非法字元 常用正則表示式
js 正則表示式匹配非法字元 示例(此示例驗證通過) var pat=new RegExp("[^a-zA-Z0-9\_\u4e00-\u9fa5]","i"); var strTest = $("#testId").val(); if(pat.test(st
js一些常用的校驗(工作中用的較多的,並附常用正則表示式)
做web的經常會遇到一些js校驗,比如身份證呀,手機號呀,郵箱呀等等,分享下我工作中遇到的這些,整理了下 /* * 校驗是否為空(null/空串) */ var checkNull = function(str){ if(str == null || str ==
js常用正則表達式2
常用正則 pan intern xxxxxxxx span size post 英文字母 只能輸入數字 整數或者小數:^[0-9]+\.{0,1}[0-9]{0,2}$ 只能輸入數字:"^[0-9]*$"。 只能輸入n位的數字:"^\d{n}$"。 只能輸入至少n位的數字:
js常用正則收集
適合 spa aud 中間 pos nbsp audio 大於 正常 1:非純空白字符串且長度大於1: /^\s*\S+[\s\S]*$/ , 右側可以正常匹配:“ 11 1 1 a ” 、“ 1 aa”
php 常用正則表示式彙總
1. 平時做網站經常要用正則表示式,下面是一些講解和例子,僅供大家參考和修改使用: 2. "^\d+$" //非負整數(正整數 + 0) 3. &n
常用正則表示式符號
正則表示式總結: \b : 單詞的開頭或結尾 . : 除了換行符以外的任意字元 * :前邊的內容可以連續重複使用任意次 \n : 換行符 \d :匹配一個數字 {n}
常用正則表示式收集
分享一下我老師大神的人工智慧教程!零基礎,通俗易懂!http://blog.csdn.net/jiangjunshow 也歡迎大家轉載本篇文章。分享知識,造福人民,實現我們中華民族偉大復興!  
js中正則表示式test()方法
正則表示式即描述字串規則的表示式 /pattern/attrs /規則/屬性 new RegExp(pattern,attrs) regexObj.test(str)方法:測試正則表示式與指定字串是否匹
js利用正則表示式修改某個字元
js中由於沒有replaceAll()方法,需要替換字串的某些字元時候,得重複呼叫replace()方法,很是累贅。 可以採用正則表示式處理,如以下程式把toolsStartTime中的‘-’替換為‘/’。 var
JS採用正則表示式獲取位址列引數
getQueryString:function(name) { var reg = new RegExp("(^|&)"+ name +"=([^&]*)(&|$)"); var r = decodeURI(decodeURI(window.location.search)
shell 常用正則表示式
分享一下我老師大神的人工智慧教程!零基礎,通俗易懂!http://blog.csdn.net/jiangjunshow 也歡迎大家轉載本篇文章。分享知識,造福人民,實現我們中華民族偉大復興!  
常用正則表示式(copy)
一、校驗數字的表示式 數字:^[0-9]*$ n位的數字:^\d{n}$ 至少n位的數字:^\d{n,}$ m-n位的數字:^\d{m,n}$ 零和非零開頭的數字:^(0|[1-9][0-9]*)$ 非零開頭的最多帶兩位小數的數字:^([1-9][0-9]*)+(\.[0
常用正則表示式(高亮,markdown)
校驗數字的表示式 1 數字:^[0-9]*$ 2 n位的數字:^\d{n}$ 3 至少n位的數字:^\d{n,}$ 4 m-n位的數字:^\d{m,n}$ 5 零和非零開頭的數字:^(0|[1-9][0-9]*)$ 6 非零開頭的最多帶兩位小數的數字:^([1-9][0-9]*)+(
常用正則表示式_轉載
轉自網路: 常用正則表示式大全!(例如:匹配中文、匹配html) 匹配中文字元的正則表示式: [u4e00-u9fa5] 評註:匹配中文還真是個頭疼的事,有了這個表示式就好辦了 匹配雙位元組字元(包括漢字在內):[^x0