成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

RegExp對象

wangdai / 2195人閱讀

摘要:方法用于從原字符串取出子字符串并返回,不改變原字符串。它的第一個(gè)參數(shù)表示子字符串的開始位置,第二個(gè)位置表示結(jié)束位置返回結(jié)果不含該位置方法按照給定規(guī)則分割字符串,返回一個(gè)由分割出來的子字符串組成的數(shù)組。

正則表達(dá)式

正則表達(dá)式 Regular Expression 是一種表達(dá)文本模式的方法 類似字符串的模板 通常用來按照"給定模式"匹配文本

新建正則表達(dá)式有兩種方式:
字面量方式 以斜杠表示開始和結(jié)束

var regexp=/abc/;

另一種是使用RegExp構(gòu)造函數(shù)

var regexp=new RegExp("abc");

RegExp構(gòu)造函數(shù)還可以接受第二個(gè)參數(shù),表示修飾符

var regex = new RegExp("xyz", "i");
// 等價(jià)于
var regex = /xyz/i;
實(shí)例方法 RegExp.prototype.test()

正則實(shí)例對象的test方法返回一個(gè)布爾值 表示當(dāng)前模式是否能匹配參數(shù)字符串

/react/.test("react and vue");    //true

上面代碼驗(yàn)證參數(shù)字符串中是否包含react 結(jié)果返回true

RegExp.prototype.exec()

正則實(shí)力對象的exec方法 用來返回匹配結(jié)果 如果匹配 則返回一個(gè)數(shù)組 成員是匹配成功的子字符串 否則返回null

var s="x_y_z";
var r1=/x/;
var r2=/a/;
var r3=/xy/;
r1.exec(s)   //[ "x", index: 0, input: "x_y_z" ]
r2.exec(s)   // null
r3.exec(s)   // null

exec方法的返回?cái)?shù)組還包含以下兩個(gè)屬性:
input:整個(gè)原字符串。
index:整個(gè)模式匹配成功的開始位置(從0開始計(jì)數(shù))。

var r=/a(b+)a/;
var arr=r.exec("_abbba_aba_");
console.log(arr)   //["abbba","bbb"]
console.log(arr.index)   // 1  從字符串的第二個(gè)位置開始匹配成功
console.log(arr.input)  //"_abbba_aba_"

如果正則表達(dá)式加上g修飾符 賊可以多次使用exec方法 下一次搜索的位置從上一次匹配成功結(jié)束的位置開始

var reg=/a/g;
var str="abc_abc_abc";
var r1=reg.exec(str);
console.log(r1);    //[ "a", index: 0, input: "abc_abc_abc" ]
var r2=reg.exec(str);
console.log(r2)   // [ "a", index: 4, input: "abc_abc_abc" ]
var r3=reg.exec(str);
console.log(r3);  //[ "a", index: 8, input: "abc_abc_abc" ]
匹配規(guī)則 特殊字符

正則表達(dá)式對一些不能打印的特殊字符,提供了表達(dá)方法
n 匹配換行鍵;
r 匹配回車鍵;
t 匹配制表符 ;
v 匹配垂直制表符;
f 匹配換頁符;
0 匹配null字符;
xhh 匹配一個(gè)以兩位十六進(jìn)制數(shù)(x00-xFF)表示的字符;
uhhhh 匹配一個(gè)以四位十六進(jìn)制數(shù)(u0000-uFFFF)表示的 Unicode 字符;

字符類

字符類表示有一系列字符可供選擇,只要匹配其中一個(gè)就可以了。所有可供選擇的字符都放在方括號內(nèi)

/[abc]/.test("hello")  //false   不包含a、b、c這三個(gè)字母中的任一個(gè),所以返回false
/[abc]/.test("apple")  //true    包含字母a,所以返回true 

脫字符:
如果方括號內(nèi)的第一個(gè)字符是[^],則表示除了字符類之中的字符,其他字符都可以匹配

/[^abc]/.test("hello")  //true
/[^abc]/.test("bbbc")   //false

連字符:
對于連續(xù)序列的字符,連字符(-)用來提供簡寫形式,表示字符的連續(xù)范圍

/a-z/.test("b") // false  連字符不出現(xiàn)在方括號之中,就不具備簡寫的作用,只代表字面的含義,所以不匹配字符b
/[a-z]/.test("b") // true
重復(fù)類

精確匹配次數(shù),使用大括號({})表示
{n}表示恰好重復(fù)n次,{n,}表示至少重復(fù)n次,{n,m}表示重復(fù)不少于n次,不多于m次

/Ro{2}kie/.test("Rookie") // true  指定o連續(xù)出現(xiàn)2次
/Ro{2,5}kie/.test("Rooookie") // true  指定o連續(xù)出現(xiàn)2次到5次之間 
? 問號表示某個(gè)模式出現(xiàn)0次或1次,等同于{0, 1}。
* 星號表示某個(gè)模式出現(xiàn)0次或多次,等同于{0,}。
+ 加號表示某個(gè)模式出現(xiàn)1次或多次,等同于{1,}。


修飾符

表示模式的附加規(guī)則,放在正則模式的最尾部。

修飾符可以單個(gè)使用,也可以多個(gè)一起使用。

g修飾符:
g修飾符表示全局匹配(global),加上它以后,正則對象將匹配全部符合條件的結(jié)果,主要用于搜索和替換。

var regex = /b/;
var str = "abba";

regex.test(str); // true
regex.test(str); // true
regex.test(str); // true

正則模式不含g修飾符,每次都是從字符串頭部開始匹配。所以,連續(xù)做了三次匹配,都返回true

var regex = /b/g;
var str = "abba";

regex.test(str); // true
regex.test(str); // true
regex.test(str); // false

正則模式含有g(shù)修飾符,每次都是從上一次匹配成功處,開始向后匹配。因?yàn)樽址產(chǎn)bba只有兩個(gè)b,所以前兩次匹配結(jié)果為true,第三次匹配結(jié)果為false

i修飾符:
默認(rèn)情況下,正則對象區(qū)分字母的大小寫,加上i修飾符以后表示忽略大小寫

/abc/.test("ABC") // false    
/abc/i.test("ABC") // true
//加了i修飾符以后,不考慮大小寫,所以模式abc匹配字符串ABC

m修飾符:
m修飾符表示多行模式
會修改^和$的行為

字符串的方法 String.prototype.toLowerCase(),String.prototype.toUpperCase()

toLowerCase方法用于將一個(gè)字符串全部轉(zhuǎn)為小寫,toUpperCase則是全部轉(zhuǎn)為大寫。它們都返回一個(gè)新字符串,不改變原字符串

"Hello World".toLowerCase()
// "hello world"

"Hello World".toUpperCase()
// "HELLO WORLD"
String.prototype.charAt()

charAt方法返回指定位置的字符,參數(shù)是從0開始編號的位置

var s = new String("abc");

s.charAt(1) // "b"
s.charAt(s.length - 1) // "c"
String.prototype.charCodeAt()

charCodeAt方法返回字符串指定位置的 Unicode 碼

"abc".charCodeAt(1) // 98
String.prototype.indexOf(),String.prototype.lastIndexOf()

indexOf方法用于確定一個(gè)字符串在另一個(gè)字符串中第一次出現(xiàn)的位置,返回結(jié)果是匹配開始的位置。如果返回-1,就表示不匹配
indexOf方法還可以接受第二個(gè)參數(shù),表示從該位置開始向后匹配。

"hello world".indexOf("o", 6) // 7

lastIndexOf方法的用法跟indexOf方法一致,主要的區(qū)別是lastIndexOf從尾部開始匹配,indexOf則是從頭部開始匹配。

"hello world".lastIndexOf("o") // 7
String.prototype.slice()

slice方法用于從原字符串取出子字符串并返回,不改變原字符串。它的第一個(gè)參數(shù)是子字符串的開始位置,第二個(gè)參數(shù)是子字符串的結(jié)束位置(不含該位置)

"JavaScript".slice(0, 4) // "Java"

如果參數(shù)是負(fù)值,表示從結(jié)尾開始倒數(shù)計(jì)算的位置,即該負(fù)值加上字符串長度

"JavaScript".slice(-6) // "Script"
String.prototype.substr()

substr方法用于從原字符串取出子字符串并返回,不改變原字符串,跟slice和substring方法的作用相同。
substr方法的第一個(gè)參數(shù)是子字符串的開始位置(從0開始計(jì)算),第二個(gè)參數(shù)是子字符串的長度。

"JavaScript".substr(4, 6) // "Script"

如果第一個(gè)參數(shù)是負(fù)數(shù),表示倒數(shù)計(jì)算的字符位置。如果第二個(gè)參數(shù)是負(fù)數(shù),將被自動轉(zhuǎn)為0,因此會返回空字符串。

"JavaScript".substr(4, -1) // ""
String.prototype.substring()

substring方法用于從原字符串取出子字符串并返回,不改變原字符串,跟slice方法很相像。它的第一個(gè)參數(shù)表示子字符串的開始位置,第二個(gè)位置表示結(jié)束位置(返回結(jié)果不含該位置)

"JavaScript".substring(0, 4) // "Java"
String.prototype.split()

split方法按照給定規(guī)則分割字符串,返回一個(gè)由分割出來的子字符串組成的數(shù)組。

"a|b|c".split("|") // ["a", "b", "c"]
surprise

讓一個(gè)字符串反轉(zhuǎn)

var str="abcde";
var arr=str.split("");
console.log(arr)   //[ "a", "b", "c", "d", "e" ]
var arr2=arr.reverse();
console.log(arr2)  //[ "e", "d", "c", "b", "a" ]
vvar str2=arr.toString();
console.log(str2);   //e,d,c,b,a

文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請注明本文地址:http://systransis.cn/yun/108449.html

相關(guān)文章

  • JS中的正則表達(dá)式

    摘要:構(gòu)造函數(shù)可以有兩個(gè)字符串參數(shù),第一個(gè)參數(shù)包含正則表達(dá)式的主體部分。只讀的布爾值,說明這個(gè)正則表達(dá)式是否帶有修飾符。中正則的擴(kuò)展構(gòu)造函數(shù)在中,只能接受字符串作為參數(shù),允許其直接接受正則表達(dá)式作為參數(shù)。 上文傳送門:初探正則表達(dá)式 正則表達(dá)式是一個(gè)描述字符模式的對象,JavaScript 的 RegExp 類表示正則表達(dá)式,String 和 RegExp 都定義了方法,后者使用正則表達(dá)式進(jìn)...

    Soarkey 評論0 收藏0
  • JS正則表達(dá)式精簡教程(JavaScript RegExp 對象

    摘要:返回值是被找到的值。支持正則表達(dá)式的對象的方法方法檢索與正則表達(dá)式相匹配的子字符串。該數(shù)組是通過在指定的邊界處將字符串分割成子串創(chuàng)建的。注意報(bào)錯(cuò)正確示例附表修飾符修飾符描述執(zhí)行對大小寫不敏感的匹配。查找以十六進(jìn)制數(shù)規(guī)定的字符。 什么是 RegExp? RegExp 是正則表達(dá)式的縮寫。 當(dāng)您檢索某個(gè)文本時(shí),可以使用一種模式來描述要檢索的內(nèi)容。RegExp 就是這種模式。 簡單的模式可以...

    ACb0y 評論0 收藏0
  • 【JavaScript】正則表達(dá)式

    摘要:對象對象對象表示正則表達(dá)式,它是對字符串執(zhí)行模式匹配的強(qiáng)大工具。查找以十六進(jìn)制數(shù)規(guī)定的字符。支持正則表達(dá)式的對象的方法方法描述檢索與正則表達(dá)式相匹配的值。替換與正則表達(dá)式匹配的子串。 RegExp對象 RegExp 對象 RegExp 對象表示正則表達(dá)式,它是對字符串執(zhí)行模式匹配的強(qiáng)大工具。 直接量語法 /pattern/attributes 創(chuàng)建 RegExp 對象的語法 new R...

    894974231 評論0 收藏0
  • PocketLibs(2)—— 請求相關(guān) path-to-regexp

    摘要:直接調(diào)用構(gòu)造函數(shù)使用,一個(gè)可能含某種匹配模式的路徑字符串作為它的必選參數(shù),它返回一個(gè)正則對象。有兩個(gè)方法返回一個(gè)正則對象,效果與調(diào)用構(gòu)造函數(shù)一樣返回一個(gè)函數(shù),該函數(shù)與下面的返回的函數(shù)功能一樣方法,同樣接收一個(gè)路徑字符串。 code in here使用path-to-regexp,我們可以在路徑字符串中使用正則。如/:foo*/:bar?、/icon-:foo(d+).png等。像exp...

    Prasanta 評論0 收藏0
  • Javascript正則表達(dá)式入門

    摘要:返回值一個(gè)新的對象,具有指定的模式和標(biāo)志。參數(shù)作用正則表達(dá)式規(guī)定匹配的類型。如果未找到匹配,則返回值為。返回值請注意,無論是否是全局模式,都會把完整的細(xì)節(jié)添加到它返回的數(shù)組中。字符串或正則表達(dá)式,從該參數(shù)指定的地方分割。 前言 PS:2018/03/27 優(yōu)化文章格式,新增部分測試代碼說起正則其實(shí)大家都會經(jīng)常接觸到,前端小到校驗(yàn),大到插件隨處可見,簡單的方法也能實(shí)現(xiàn)需求,不過缺乏靈活性...

    joywek 評論0 收藏0
  • JavaScript標(biāo)準(zhǔn)庫系列——RegExp對象(三)

    摘要:目錄導(dǎo)語理解正則表達(dá)式模式的規(guī)則字符串和正則實(shí)例的屬性和方法檢索實(shí)例小結(jié)導(dǎo)語正則表達(dá)式是處理字符串的一門藝術(shù)手法,應(yīng)用場景經(jīng)常出現(xiàn)在表單驗(yàn)證部分高級程序設(shè)計(jì)一書開篇提到,這門語言最原始的應(yīng)用就是處理輸入驗(yàn)證操作,所以正則表達(dá)式從誕生那一刻就 目錄 導(dǎo)語 1.理解正則表達(dá)式 2.模式的規(guī)則 3.字符串和正則實(shí)例的屬性和方法 4.檢索實(shí)例 5. 小結(jié) 導(dǎo)語 正則表達(dá)式是處理字符串的一門藝...

    邱勇 評論0 收藏0

發(fā)表評論

0條評論

最新活動
閱讀需要支付1元查看
<