摘要:正則不是必須的,任何東西我們都可以不用正則用其他方式實現。正則中的轉義尋找第一個出現的數字正則中的轉義代表數字索引數字出現在索引的位置只能找到字母出現的索引位置。所以我們就需要寫一個過濾標簽的方法。點代表任意字符,在正則里勁量不要用。
寫一個最簡單的正則
// var re=new RegExp("a");//js風格 var re=/a/;//perl風格,古老語言現在沒人用了 // var re2=new RegExp("o"); var re2=/o/; var str="hello world!"; console.log(str.search(re));//-1 console.log(str.search(re2));//4用i寫一個忽略大小寫的正則
// var re=new RegExp("h","i");//用i忽略大小寫i===ignore var re=/h/i; var str="Hello world!"; console.log(str.search(re));//0,上面忽略h大小寫,可以找到第0個元素
像上面這種找個o找個h,不用正則也一樣簡單。正則不是必須的,任何東西我們都可以不用正則用其他方式實現。
下面我們做一些利用正則可以更簡單的實現的功能。
// 正則中的轉義 d 代表數字 var str="abc 55 fgdf56 56"; var re=/d/; console.log(str.search(re));//索引4 數字5出現在索引4的位置
search只能找到字母出現的索引位置。match把所有匹配的東西,全部提取出來
用g寫一個獲取全部符合要求的正則,利用match把所有匹配的內容展示出來var str="asdf 66 5649 sdf546"; // 找到第一個數字 var re=/d/; console.log(str.match(re));//["6", index: 5, input: "asdf 66 5649 sdf546", groups: undefined] // g找到全部的數字g===global代表找到全部 var re2=/d/g;//一個d表示要一個數字 console.log(str.match(re2));//["6", "6", "5", "6", "4", "9", "5", "4", "6"]用+標識獲取若干個,下面例子中是若干個數字
+量詞,代表若干(多少都可以)
// +量詞,代表若干(多少都可以) var str="asdf 66 5649 sdf546"; var re3=/d+/g;//一個d表示要一個數字,加上+代表要若干數字 console.log(str.match(re3));//["66", "5649", "546"]敏感詞過濾
.代表任意字符敏感詞過濾
var str="asdf 66 5649 sdf546 +-*/."; var re=/./g; console.log(str.match(re));//?["a", "s", "d", "f", " ", "6", "6", " ", "5", "6", "4", "9", " ", "s", "d", "f", "5", "4", "6", " ", "+", "-", "*", "/", "."]元字符或者叫方括號[]
[]代表或里面內容任選一個都行。
1、任意字符
[abc]pc
代表apc bpc cpc都符合要求,如果寫成其他形式就不符合要求。
var str="apc bpc cpc dpc epc fpc"; var re=/[abc]pc/g;//g代表全部符合要求的 console.log(str.match(re));//["apc", "bpc", "cpc"]
2、范圍
// 找出a-z的字母和0-9的數字 var str="asdf 66 5649 sdf546"; var re2=/[a-z]/g; console.log(str.match(re2));//["a", "s", "d", "f", "s", "d", "f"] var re=/[0-9]/g;//找出所有0-9的數字 console.log(str.match(re));//["6", "6", "5", "6", "4", "9", "5", "4", "6"]
3、排除
// 排除a-z var str="asdf 66 5649 sdf546 +-*/."; var re=/[^a-z]/g; console.log(str.match(re));//[" ", "6", "6", " ", "5", "6", "4", "9", " ", "5", "4", "6", " ", "+", "-", "*", "/", "."]
// 排除a-z和0-9 var str="asdf 66 5649 sdf546 +-*/."; var re=/[^a-z0-9]/g; console.log(str.match(re));//[" ", " ", " ", " ", "+", "-", "*", "/", "."]
像小說網站,我們不可能一部一部小說錄進去,我們把別人網站的小說扒過來。
一般采集的小說都會包含html標簽,這時候我們就需要把小說變成純文本的。所以我們就需要寫一個過濾html標簽的方法。
正則中的轉義過濾html標簽模擬采集器處理成文本
d 代表數字。就是[0-9]
w 代表英文、數字、下劃線。就是[a-z0-9_]
s 代表空白字符,包括空格、tab等不可打印的字符
D 代表除了0-9意外的東西。就是1
W 代表除了a-z,0-9和下劃線意外的東西。就是2
S 代表非空白字符。
. 點代表任意字符,在正則里勁量不要用。
{n} 代表正好出現n次——寫一個正則標識8位的固定電話號碼/[1-9]d{7}/ ——第一位1-9后面7位是數字。
{n,m} 代表最少出現n次,最多出現m次——比如寫個qq號(5-11位)——
/[1-9]d{4,10}/ 第一位1-9,后面是4位到10位的數字
{n,} 代表最少n次最多不限。
+==={1,}標識最少出現一次,最多不限
?==={0,1} 代表最少0次最多1次——固定電話的區號可以出現也可以不出現——/(0d{2-3}-)?[1-9]d{7}(-d{1,5})?/代表第一位是0然后后面是2到3位數字,然后書面是-,?標識前面可有可無,后面部分代表分機號。
*==={0,} 代表最少0個最多不限,可以沒有也可以有很多位。不常用。
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/97114.html
摘要:舉例一使用這個正則,打印結果為使用這個正則,打印結果為舉例二打印結果如下過濾標簽你好美麗的上海想轉化成你好,美麗的上海如果后面加,就會進入非貪婪模式。如果后面不加,就會進入貪婪模式,結果為上海。你好美麗的上海。 1.創建一個正則表達式 方法一:使用一個正則表達式字面量,其由包含在斜杠之間的模式組成。 var reg1 = /a/; var reg2 = /ab+c/; 方法二:調用Re...
摘要:舉例一使用這個正則,打印結果為使用這個正則,打印結果為舉例二打印結果如下過濾標簽你好美麗的上海想轉化成你好,美麗的上海如果后面加,就會進入非貪婪模式。如果后面不加,就會進入貪婪模式,結果為上海。你好美麗的上海。 1.創建一個正則表達式 方法一:使用一個正則表達式字面量,其由包含在斜杠之間的模式組成。 var reg1 = /a/; var reg2 = /ab+c/; 方法二:調用Re...
摘要:舉例一使用這個正則,打印結果為使用這個正則,打印結果為舉例二打印結果如下過濾標簽你好美麗的上海想轉化成你好,美麗的上海如果后面加,就會進入非貪婪模式。如果后面不加,就會進入貪婪模式,結果為上海。你好美麗的上海。 1.創建一個正則表達式 方法一:使用一個正則表達式字面量,其由包含在斜杠之間的模式組成。 var reg1 = /a/; var reg2 = /ab+c/; 方法二:調用Re...
摘要:異步事件處理本項目涉及到多種異步事件的處理。即是的粉絲,是的關注對象。模式定義優缺點推事件觸發后廣播給所有粉絲。具體來說,推模式就是事件觸發后產生,觸發事件的用戶下所有粉絲的實現中都存入該的。 項目源代碼已托管在 Github,歡迎 Star、Fork。 Q & A 問答社區 QA 是一個基于 B/S 架構而設計開發的社區網站。 showImg(https://segmentfault...
閱讀 3043·2021-11-25 09:43
閱讀 1626·2021-11-24 11:15
閱讀 2359·2021-11-22 15:25
閱讀 3501·2021-11-11 16:55
閱讀 3240·2021-11-04 16:10
閱讀 2773·2021-09-14 18:02
閱讀 1685·2021-09-10 10:50
閱讀 1070·2019-08-29 15:39