摘要:被稱之為修飾符,用于表明正則表達式的行為。創建對象如下代碼類型于類型之間的區別使用運算符,類型返回,類型返回。提取字符串中的兩個指定的索引號之間的字符。在字符串中查找匹配的子串,并替換于正則表達式匹配的字串。
RegExp類型 概述
正則表達式時什么
正則表達式(Regular Expression):由一些普通字符和特殊字符組成的,用以描述一種特定的字符規則的表達式。
正則表達式常用于在一段文本中搜索,匹配或替換特定形式的文本。如:詞語出現頻率統計,驗證字符串是否符合郵箱格式,屏蔽一篇帖子中限制性的詞語等
創建正則表達式
JavaScript中沒有正則表達式數據類型,創建正則表達式的語句如下:
var expression =/pattern/attributes;
pattern參數:被稱為模式,可以時任何簡單或復雜的正則表達式,包含字符類,限定符,分組,向前查找已經反向應用。
attribures參數:被稱為修飾符,用于表明正則表達式的行為。
##符號
直接量字符
正則表達式中的所有字母和數字都是按照字面含義進行匹匹厄的。JavaScript正則表達式語法也是支持非字母的字符匹配,這些字符需要通過反斜線()作為前綴進行轉義。
O 匹配NULL字符,不要再這后面跟其他的小鼠
t匹配一個水平制表符。
n匹配一個換行符。
v 匹配一個垂直制表符。
R匹配一個回車符。
f匹配一個換頁符。
xhh 匹配帶有兩位小數代碼(hh)的字符
uhhh 匹配一個帶有四位小數代碼(hh)的字符
字符類
將直接量字符多帶帶放進方括號內就組成了字符類。一個字符類可以匹配它所包含的任意字符。由于某些字符類非常常用,JavaScript的正則表達式中,使用特殊轉義字符表示他們。
[...] 一個字符集合。匹配放闊號任意字符。你可以使用破折號
(-)來制定。由于某些字符范圍。對于點
(.)和信號(*)這樣的特殊字符再一個字符集中沒有特殊的意義。
1 一個反向的字符集。
. (小數點)匹配除了換行符(n)之外的任何單個字符
w 匹配一個單子字符(字母,數字,或者下劃線)。等價于[A-Za-z0-9]
W匹配一個非單字字符。
s匹配一個空白字符,包括空格,制表符,換頁符和換行符。
S匹配一個非空白字符。
d匹配一個數字, 等價于【0-9】
D匹配一個非數組字符。等價于2;
重復
再JavaScript中的正則表達式用來描述任意多為的數字,或者描述由三個字母和一個數字構成的字符串時,可以使用字符重復的標記。
{n,m} n和m都是正整數。匹配前面的字符至少n次,做多m次。如果n或者m是0那么可以或略這個值
{n}n是一個正整數,匹配了前面一個字符剛好發生了n次。
{n}n是一個正整數,匹配了有一個正整數,匹配了前面一個字符放生了n次或者更多次。
? 匹配前面一個字符0或者1次和{0,1}有相同的效果。
匹配前面一個字符1次或者多次,和{1,}有相同的效果。
匹配簽一個字符0或者多次。
注意:‘*’ ‘?’可以匹配0個字符,允許什么都匹配
選擇,分組,引用
正則表達式包括指定選擇項,子表達式分組和引用前一子表達式的特殊字符。
x|y 匹配‘x’或者‘y’。
(x) 匹配“x”并且記住匹配項。這個被叫做捕獲括號。
(?.x) 匹配“x”但是不記住匹配項。這種被叫做非捕獲括號。
n 是一個正整數,一個返回引用到最后一個于有n插入的正值表達式(counting left parentheses)匹配的副字符串。
指定匹配位置
正則表達式中的多個元素才能夠匹配字符串的一個字符,這些元素稱之為正則表達式的錨。因為他們將模式定位在搜索字符串的特定位置上。
^ 匹配輸入的開始 。如果多行標識被設置為true,同時匹配換行后緊跟的字符
$ 匹配輸入的結束,如果多行標識被設置為ture,同時會匹配換行之前緊跟的字符
b 匹配一個詞的邊界。一個詞的邊界就是一個詞不被另外一個次跟隨的位置或者不是另外一個詞匯字符前邊的位置。
B 匹配一個非單詞的邊界
X(?=y) 匹配‘x’僅僅當‘x’后面跟著‘y’。這種叫做正向肯定查找。
x(?!y) 匹配‘x’僅僅當‘x’后面不跟著y,這個叫做正向否定查找。
修飾符
正則表達式的修飾符,用于說明高級匹配的規則。修飾符是放在‘/’符號的后面的。JavaScript支持的三個修飾符。
i 不區分大小寫
g 全局搜索
m 多行搜搜
對象
創建RegExp對象
JavaScript可以通過引用類型RegExp創建正則表達式對象,語法如下:
var pattern =new RegExp(pattern,attributes);
參數:
pattern:被稱之為模式,可以是任何簡單或復雜的正則表達式,包含字符類,限制類,分組,向前查找以及反向引用。
attributes:被稱之為修飾符,用于表明正則表達式的行為。
RegExp對象的屬性
RegExp對象的屬性如下:
global 只讀 RegExp對象是否具有g修飾符。
ignorecase 只讀RegExp對象是否具有i修飾符。
multiline 只讀RegExp對象是否具有m修飾符。
lastindex 用于設置獲取下次匹配的其實位置。
source 只讀 返回模式匹配所使用的問題。
$1...$9 全局屬性 指代最近一次搜索中某個子表達式匹配的問題。
RegExp對象的方法
RegExp對象的方法如下:
compile() 編譯/重新編譯正則表達式,將pattern轉換為內部格式,加速執行速度。
exec() 檢索字符串中指定的值。返回找到的值,并確定其位置;影響lastindex屬性的值。
test() 檢索字符串指定的值。返回ture 或false;影響lastindex屬性的值。
字符串是什么
String類型是于原始類型string對應的包裝類型。創建String對象如下代碼:
var strObject = new String ("this is string");
string 類型于String 類型之間的區別:
使用typeof運算符,string 類型返回‘string’,String類型返回"object"。
String類型提供了很多屬性和方法可以使用。例如檢索字符串,分割字符換行等操作
大小寫轉換
String對象提供如下放方法,用于大小寫轉換。
toUppercase() 把字符串轉換為大寫。
toLowercase() 把字符串轉換為小寫。
var =msg = "Hello World";
var lowerMsg =msg.tolowercase();
var upperMsg =msg.toUppercase ();
console.log(msg);//Hello World
console.log(LoweMsg);//hello world
console.log(upperMsg);//HELLO WORLD
獲取指定位置的字符串
String對象提供如下方法。用于獲取指定位置的字符。
charAr() 返回再指定位置的字符。
charCodeAt() 返回在指定的位置的字符的Unicode編碼。
var str = "HELLO WORLD";
console.log(str.charAt(2));//L
console.log(str.charCode(0));72
檢索字符串
String對象提供如下方法,用于檢索字符串。
indexOf()返回某個指定的字符串值在字符串中首次出現的位置。
lastindexOf()從后向前字符串。
var email ="tom@163@sohu.com";
console.log(email.indexOf("tom"));//0
console.log(email.indexOf("@",5))//7
console.log(email.lastIndexOf("@"))//7
console.log(smail.lastIndexOf("@",5))//3
console.log(email.indexOf("Mary"));/-1
截取子字符串
String對象提供如下方法,用于截取子字符串。
slice() 提取字符串的片段,并在新的字符串中返回被提取的部分。
substr() 從其實索引號提取字符串中指定書目的字符。
substring() 提取字符串中的兩個指定的索引號之間的字符。
var msg = "abc一二三";
console.log(msg.slice(2,4));//c一
console.log(msg.substring(2,4))//c一
console.log(msg.substr(2,1))//c
console.log(msg.slice(-3,-2));//一
分隔字符串
string對象提供如下方法,用于分隔字符串。
split() 把字符串分割為字符串數組。
var str ="1,2,3,4";
str,split("");//["1","2","3","4,"];
str.split("",3);//["1","2","3","4"];
連接字符串
String對象提供了如下方法,用于連接字符串。
concat() 連接兩個或者更多字符串,并返回新的字符串。
var s1 ="AA";
var s2= s1.concat("BB","CC",55);
console.log(s1);AA
console.log(s2);//AABBCC55
修飾符
模式匹配中可以使用如下三種屬性修飾符:
i ignorecase,執行對大小寫不敏感的匹配。
g global, 執行全局匹配(查找所有匹配而不是在第一次匹配之后停止)。
m multiline,允許執行多行匹配。
替換子字符串
String對象提供如下方法,用于替換子字符串。
replce()在字符串中查找匹配的子串,并替換于正則表達式匹配的字串。
var = data =Microsoft is a big company ,microsoft"s color is red and has MICROSOFT logo lick microsoft";
console.log (data.replace("microsoft","oracle"));
console.log(data.replace(/microsoft/,"oracle"));
console.log(data.replace(/microsoft/i,oracle));
console.log(data.replace(/microsoft/ig,oracle));
匹配字符串
String對象提供了如下方法,用于匹配字符串。
match() 查找找到一個或多個正則表達式的匹配。
var = data =Microsoft is a big company ,microsoft"s color is red and has MICROSOFT logo lick microsoft";
console.log(data.match("microsoft"))
console.log(data.match(/microsoft/));
console.log(data.match(/microsoft/i);
console.log(data.match(/microsoft/ig));
查找字符串
String對象提供如下方法,用于查找字符串
search 查找于正則表達式向匹配的值。
var = data =Microsoft is a big company ,microsoft"s color is red and has MICROSOFT logo lick microsoft";
console.log(data.search)(/"microsoft"/);
console.log(data.search)(/"microsoft"i)/;
console.log(data.search)(/"microsoft"/ig);
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://m.specialneedsforspecialkids.com/yun/108451.html
摘要:今天同學去面試,做了兩道面試題全部做錯了,發過來給道典型的面試題前端掘金在界中,開發人員的需求量一直居高不下。 排序算法 -- JavaScript 標準參考教程(alpha) - 前端 - 掘金來自《JavaScript 標準參考教程(alpha)》,by 阮一峰 目錄 冒泡排序 簡介 算法實現 選擇排序 簡介 算法實現 ... 圖例詳解那道 setTimeout 與循環閉包的經典面...
摘要:基本語法構造函數可創建一個正則表達式對象,用特定的模式匹配文本。要表示字符串,字面量形式不使用引號,而傳遞給構造函數的參數使用引號。當使用構造函數創造正則對象時,需要常規的字符轉義規則在前面加反斜杠。結果替換與正則表達式匹配的子串。 文章來源:小青年原創發布時間:2016-06-26關鍵詞:JavaScript,正則表達式,js模板引擎轉載需標注本文原始地址: http://zhaom...
摘要:簡介正則表達式,又稱正規表示法正規表達式規則表達式常規表示法英語,在代碼中常簡寫為或,計算機科學的一個概念。返回布爾值,該值指示在正則表達式中使用的標志的狀態。包含正則表達式模式和適用標志的對象的實例。 showImg(http://upload-images.jianshu.io/upload_images/100028-21442c62c7b7674a.jpg?imageMogr2...
摘要:簡介俗稱,的正式名稱是,是網景公司公司開發的一種基于客戶端瀏覽器基于面向對象事件驅動式的網頁腳本語言。變量名不能使用關鍵字變量名對大小寫敏感。 javascript簡介 javascript俗稱js,js的正式名稱是ECMAScript,是網景公司Netscape公司開發的一種基于客戶端瀏覽器、基于面向對象、事件驅動式的網頁腳本語言。主要用于:交互式操作,表單驗證,網頁特效,web游...
閱讀 3962·2021-09-22 10:02
閱讀 3380·2019-08-30 15:52
閱讀 3071·2019-08-30 12:51
閱讀 770·2019-08-30 11:08
閱讀 2073·2019-08-29 15:18
閱讀 3116·2019-08-29 12:13
閱讀 3606·2019-08-29 11:29
閱讀 1883·2019-08-29 11:13