摘要:下面我們來(lái)介紹一下什么是正則表達(dá)式定義正則也叫規(guī)則,是讓計(jì)算機(jī)能夠讀懂人類的規(guī)則,正則都是操作字符串的,正則是一個(gè)強(qiáng)大的字符串匹配工具。
傳統(tǒng)字符串的方法
1.indexOf ——查找對(duì)應(yīng)字符的位置
2.SubString——用來(lái)截取字符串
3.charAt——在字符串中根據(jù)下標(biāo)去找對(duì)應(yīng)的字符
4.Split ——將字符串通過(guò)分割符轉(zhuǎn)成數(shù)組
var str = "abc123def45ghijk67lmnxyd89"; // 得到所有的數(shù)字 并將相連的數(shù)字進(jìn)行相連存儲(chǔ) 如 ["123","45","67","89"] var arr = []; // 建立一個(gè)臨時(shí)變量 用來(lái)拼接連續(xù)的數(shù)字字符串 var temp = ""; for(var i = 0; i < str.length; i++) { if(str.charAt(i)>="0"&&str.charAt(i)<=9) { // 進(jìn)來(lái)之后肯定是數(shù)字 temp += str[i]; } else { if (temp) { arr.push(temp); // 清空這個(gè)臨時(shí)變量 以便于下一次重新裝載 連續(xù)的數(shù)字 temp = ""; } } } // 防止 最后一些字符 是數(shù)字 不進(jìn)else 就拼不進(jìn)去了 所以這個(gè)在最后要判斷如果temp里面還有 則在推進(jìn)去一次 if (temp) { arr.push(temp); temp = ""; } console.log(arr);
上面的方法是傳統(tǒng)的查找字符串的方法,我們會(huì)感覺(jué)的很麻煩,下面我們用正則表達(dá)式試試:
var str = "abc123def45ghijk67lmnxyd89"; console.log(str.match(/d+/g));
用正則表達(dá)式以后會(huì)覺(jué)得這樣是簡(jiǎn)單了很多,提高我們的開(kāi)發(fā)效率。
下面我們來(lái)介紹一下什么是正則表達(dá)式定義:正則:也叫規(guī)則,是讓計(jì)算機(jī)能夠讀懂人類的規(guī)則,正則都是操作字符串的,正則是一個(gè)強(qiáng)大的字符串匹配工具。
c) 正則:正則表達(dá)式Regular Expression var str var arr var re regexp
正則一個(gè)js中全局內(nèi)置對(duì)象 (var mydate = new Date()) php (正則)
正則是一個(gè)工具
簡(jiǎn)單聲明方式: var re = /abc/;
構(gòu)造函數(shù)聲明方式 var re = new RegExp(‘a(chǎn)bc’);
下面是一些正則表達(dá)式的常用匹配方法 一、Test():用正則去匹配的方法1.返回值: 如果匹配成功 則返回true 否則匹配不成功 返回fals
2.寫法: re.test(str); 用re去匹配str
.(點(diǎn))——任意字符 如果就想只匹配.(點(diǎn)) 加轉(zhuǎn)義字符 還原它本來(lái)的意思.
d、D 匹配數(shù)字 / 非數(shù)字
w、W 匹配字符/非字符 (字符:字母數(shù)字下劃線 不包含空格)
s 、S 空格/ 非空格
b 、B 匹配獨(dú)立部分/ 非獨(dú)立部分
二、Search() 用正則進(jìn)行匹配的方法1.返回值: 如果匹配成功 則返回對(duì)應(yīng)匹配的位置 否則匹配不成功返回-1
2.寫法:str.search(re)
注意:正則中嚴(yán)格區(qū)分大小寫 如果你想忽略大小寫,忽略大小寫(ignore簡(jiǎn)寫)
1.返回值:如果匹配成功 則返回一個(gè)數(shù)組,會(huì)把匹配到字符保存到數(shù)組中
2.寫法:str.match(re)
注意: 正則匹配:如果匹配成功 則不往后匹配了,g 全局匹配模式
var str = "abbbcdeBdbBzzsB"; // ["bbb","B","bB","B"] var re = /B+/ig; // new RegExp(‘B+’,’ig’); console.log(str.match(re));
上面的i和g都是放置在第二斜杠后面
四、 Replace()返回值:用正則去匹配字符串 ,將匹配到的字符進(jìn)行替換 替換成新的字符
寫法一: str.replace(re,新字符); 寫法二: str.replace(re,function($0){
Console.log($0)
})
小案例:
將字符串("我的生活,我的愛(ài)人,我的世界")中的"我的"替換成"my"
var str="我的生活,我的愛(ài)人,我的世界"; document.write(str.replace(/"我的"/,"my"))//只替換了第一個(gè)后面的都沒(méi)有被替換 document.write(str.replace(/"我的"/g,"my"))//全部的我的都替換成了my以上便是我對(duì)正則表達(dá)式的一些小總結(jié)!
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://m.hztianpu.com/yun/90399.html
摘要:忍者級(jí)別的函數(shù)操作對(duì)于什么是匿名函數(shù),這里就不做過(guò)多介紹了。我們需要知道的是,對(duì)于而言,匿名函數(shù)是一個(gè)很重要且具有邏輯性的特性。通常,匿名函數(shù)的使用情況是創(chuàng)建一個(gè)供以后使用的函數(shù)。 JS 中的遞歸 遞歸, 遞歸基礎(chǔ), 斐波那契數(shù)列, 使用遞歸方式深拷貝, 自定義事件添加 這一次,徹底弄懂 JavaScript 執(zhí)行機(jī)制 本文的目的就是要保證你徹底弄懂javascript的執(zhí)行機(jī)制,如果...
摘要:性能訪問(wèn)字面量和局部變量的速度是最快的,訪問(wèn)數(shù)組和對(duì)象成員相對(duì)較慢變量標(biāo)識(shí)符解析過(guò)程搜索執(zhí)行環(huán)境的作用域鏈,查找同名標(biāo)識(shí)符。建議將全局變量存儲(chǔ)到局部變量,加快讀寫速度。優(yōu)化建議將常用的跨作用域變量存儲(chǔ)到局部變量,然后直接訪問(wèn)局部變量。 缺陷 這本書是2010年出版的,這本書談性能是有時(shí)效性的,現(xiàn)在馬上就2018年了,這幾年前端發(fā)展的速度是飛快的,書里面還有一些內(nèi)容考慮IE6、7、8的東...
摘要:函數(shù)式編程前端掘金引言面向?qū)ο缶幊桃恢币詠?lái)都是中的主導(dǎo)范式。函數(shù)式編程是一種強(qiáng)調(diào)減少對(duì)程序外部狀態(tài)產(chǎn)生改變的方式。 JavaScript 函數(shù)式編程 - 前端 - 掘金引言 面向?qū)ο缶幊桃恢币詠?lái)都是JavaScript中的主導(dǎo)范式。JavaScript作為一門多范式編程語(yǔ)言,然而,近幾年,函數(shù)式編程越來(lái)越多得受到開(kāi)發(fā)者的青睞。函數(shù)式編程是一種強(qiáng)調(diào)減少對(duì)程序外部狀態(tài)產(chǎn)生改變的方式。因此,...
摘要:大多數(shù)待遇豐厚的開(kāi)發(fā)職位都要求開(kāi)發(fā)者精通多線程技術(shù)并且有豐富的程序開(kāi)發(fā)調(diào)試優(yōu)化經(jīng)驗(yàn),所以線程相關(guān)的問(wèn)題在面試中經(jīng)常會(huì)被提到。將對(duì)象編碼為字節(jié)流稱之為序列化,反之將字節(jié)流重建成對(duì)象稱之為反序列化。 JVM 內(nèi)存溢出實(shí)例 - 實(shí)戰(zhàn) JVM(二) 介紹 JVM 內(nèi)存溢出產(chǎn)生情況分析 Java - 注解詳解 詳細(xì)介紹 Java 注解的使用,有利于學(xué)習(xí)編譯時(shí)注解 Java 程序員快速上手 Kot...
閱讀 2647·2021-09-02 15:40
閱讀 1627·2019-08-30 15:54
閱讀 1139·2019-08-30 12:48
閱讀 3469·2019-08-29 17:23
閱讀 1102·2019-08-28 18:04
閱讀 3718·2019-08-26 13:54
閱讀 657·2019-08-26 11:40
閱讀 2471·2019-08-26 10:15