當前位置:
首頁 >
前端技术
> javascript
>内容正文
javascript
JS正则表达式常见场景下的用法总结
生活随笔
收集整理的這篇文章主要介紹了
JS正则表达式常见场景下的用法总结
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
(一)前置知識總結:?
1. 正則表達式 /xxxx/[標識] 其中的標識含義
?g (全文查找)
?i (忽略大小寫)
?m (多行查找)
2. 正則表達式創建的兩種方式(等價,都是對象)
創建對象的方式:這種創建方式的好處是可以往正則表達式中傳入參數~~
字面量聲明的方式:
let re = /a/gi; // 匹配所有的、忽略大小寫的字符a或A3. 正則表達式常見內置函數
4. 字符串(或String對象)一些與正則表達式相關的方法
matchAll():返回RegExpStringIterator迭代器對象(用于子匹配,但是兼容性不好,在iOS上可能無效,如果要求兼容的話需要補丁,可以使用該npm包解決兼容性問題https://www.npmjs.com/package/string.prototype.matchall。
var str="11 plus 2 equal 13"; let ite = str.matchAll(/(\d+)/g); let i0 = ite.next(); let i1 = ite.next(); console.log(io); // 結果見下圖(左) console.log(i1); // 結果見下圖(右)? ? ? ?
let matchFn = (info) => {let reg = /\{(?<name>[^{}]+)\}/g;// 匹配出所字段let matches = [...info.matchAll(reg)];let matchesKey = [];matches.forEach(item => {let groups = item.groups;matchesKey.push(groups.name);});return matchesKey; };matchFn('{a}{b}cccozvdkddzhkzd'); // 運行結果為: ["a", "b", "d"](二)應用場景總結:?
1. 取出版本號
如:"Ubuntu 8",取出數字8
如:"Ubuntu 8.10",取出主版本號8和次版本號10。(采用正則表達式的小括號子匹配的方式)
let osVersion = "Ubuntu 8.10"; // 取出主版本號和次版本號 re=/^[a-z]+\s+(\d+)/i; // 用()來創建子匹配 arr =re.exec(osVersion); // exec返回的數組第1到n元素中包含的是匹配中出現的任意一個子匹配 console.log(arr[1]); // 8,第一個子匹配,事實也可以這樣取出主版本號 console.log(arr.length); // 2 re = /^[a-z]+\s+(\d+)\.(\d+)$/i; //.是正則表達式元字符之一,若要用它的字面意義須轉義 arr = re.exec(osVersion); console.log(arr.length); // 3 console.log(arr[0]); // 完整的osVersion,因為全匹配上 console.log(arr[1]); // 8,主版本號 console.log(arr[2]); // 10,次版本號2. 提取驗證碼
如:"your captcha is :0a4Fd3",取出0
3.?替換版本號
如:"Ubuntu 8.10 ubuntu 9.12",替換為"Ubuntu 新版本號 ubuntu 新版本號"
參考來源:https://www.jb51.net/article/25313.htm
?
?
總結
以上是生活随笔為你收集整理的JS正则表达式常见场景下的用法总结的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: jushed32.exe是什么进程 j
- 下一篇: Idea Spring Boot配置文件