最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Javascript中正則表達式的應用詳解

 更新時間:2022年02月18日 09:21:27   作者:愛學習的ljz  
這篇文章主要為大家詳細介紹了Javascript中正則表達式的應用,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下,希望能夠給你帶來幫助

正則表達式 在前端中的應用也是比較常見的,我們在有時候也需要 用js 對某些字符串進行查找\捕獲 或者 替換. js 中正則表達式 一般應用在string類型和 RegExp 兩種類型中。

string

search

search() 方法 用于檢索字符串中指定的子字符串,或檢索與正則表達式相匹配的子字符串,并返回子串的起始位置。

'Hello World!'.search(/world/i);  // 6  返回匹配出的第一個字符串的開始位置索引,
//與 indexOf 方法類似,但是 search方法 可以支持 正則表達式,功能更加強大  

replace

修改某個字符串 將內容中的某個子串 替換為其他內容,可以支持字符串替換,也支持正則表達式替換,建議正則表達式替換,功能會更加強大。返回值為替換處理完成的字符串

// 1. 最簡單的應用,world 替換為 ljz
'Hello World!'.replace(/world/i,'ljz'); // 返回值('Hello ljz!') i模式可以忽略大小寫
// 2 如果要替換 的字符串為動態(tài)字符串,并且可能包含特殊符號 比如 '?' 這樣構造正則表達式,
//如果包含特殊符號會影響正則匹配,會有可能匹配不到,所以可以考慮使用字符串替換.
// 如下,要將src屬性為指定值 的 標簽 加上classname屬性為 ‘a(chǎn)aaImg'
const str = '/aaa/bbb?fileid=111';
'<img src="/aaa/bbb?fileid=111" ><h2>123</h2><p>444</p>'.replace(`src="${str}"`,`src="${str}" className="aaaImg"`);
// 返回值('<img src="/aaa/bbb?fileid=111" className="aaaImg" ><h2>123</h2><p>444</p>')
// 3. 上述情況如果只適用于替換一個字符串,如果我要替換的串是有多個呢,有兩種解決思路, 一是可以繼續(xù)使用字符串替換,可以使用replaceAll方法,用法與repalce相同,但是可以進行全部替換,ie瀏覽器不支持repalceAll方法,如果要考慮兼容ie ,那就只能考慮第二種方式了。
// 使用正則表達式,正則表達式有全局模式,可以支持全部替換,就是需要對要構造正則表達式的動態(tài)字符串進行處理一下,避免特殊符號影響匹配的情況。
// 可以先對  動態(tài)字符串進行轉碼,在對要處理的字符串進行轉碼處理,然后進行全局替換,替換完成再進行解碼還原字符串就可以了。
'<img src="/aaa/bbb?fileid=111" ><h2>123</h2><p>444</p><img src="/aaa/bbb?fileid=111" >';
const regExp = new RegExp(encodeURIComponent('src="/aaa/bbb?fileid=111"'),'g'); 
const data = encodeURIComponent(dataStr).replace(regExp, decodeURIComponent('src="/aaa/bbb?fileid=111 className="aaaImg"'));
decodeURIComponent(data);  // 返回值('<img src="/aaa/bbb?fileid=111 className="aaaImg" ><h2>123</h2><p>444</p><img src="/aaa/bbb?fileid=111 className="aaaImg" >')

match:

string.match(regexp);可在字符串內檢索指定的值,或找到一個或多個正則表達式的匹配。規(guī)定要匹配的模式的RegExp對象。如果該參數(shù)不是RegExp對象,則需要首先把它傳遞給RegExp構造函數(shù),將其轉換為RegExp 對象,返回值為一個數(shù)組,里面存放匹配出的各項字符串。

var str=”The rain in SPAIN stays mainly in the plain ;
var n=str.match(/ain/gi); // 輸出結果: ain,AlN,ain,ain ,match與 下面exec方法類似,只不過match是字符串的方法,exec是 正則表達式的方
法。

RegExp

JavaScript中,RegExp對象是一個預定義了屬性和方法的正則表達式對象

test:

用于檢測一一個字符串是否匹配某個模式,如果字符串中含有匹配的文本,則返回true,否則返回false。

const reg = new RegEx//jz/);
reg.test(hello ljz!); // true

exec:

用于檢索字符串中的正則表達式的匹配。該函數(shù)返回一個數(shù)組,其中存放匹配的結果。如果未找到匹配,則返回值為null。

// 最基本匹配
const reg1 = new RegExp(/
ljz)d+); // 匹配ljz后面攜帶數(shù)字的串
reg1.exec('cmasklnvjksdfbnk12345
6cdsnjkvbsdfhjjz123vbfsdhj)[0]; // 123

//捕獲對應的字符串
// ()會把每個分組里的匹配的值保存起來,exec得到一一個數(shù)組,此時捕獲分組會把匹配到的值保存起來,從數(shù)組下標[1]開始依次存儲
// [^]表示以此結束的串([^"]*) 就可以是捕獲分組以"結束的串
const reg2 = new RegExp(/id="([^"]*/); //要捕獲標簽字符串中的id屬性值
reg2.exec("<img id=\"cFF2vAMVq" src=\"/aaa/bbb\"/>');//返回數(shù)組。0為匹配到的字符串('d="cFF2vAMVq'),1為要捕獲的串('cFF2vAMVq')

總結

本篇文章就到這里了,希望能夠給你帶來幫助,也希望您能夠多多關注腳本之家的更多內容!

相關文章

  • 也說JavaScript中String類的replace函數(shù)

    也說JavaScript中String類的replace函數(shù)

    最近讀了sharpxiajun的博文《javascript筆記--String類replace函數(shù)的一些事》,感覺寫的很好,很有幫助。
    2011-09-09
  • JS+DIV+CSS實現(xiàn)仿表單下拉列表效果

    JS+DIV+CSS實現(xiàn)仿表單下拉列表效果

    這篇文章主要介紹了JS+DIV+CSS實現(xiàn)仿表單下拉列表效果,涉及javascript鼠標事件及頁面元素的動態(tài)操作技巧,具有一定參考借鑒價值,需要的朋友可以參考下
    2015-08-08
  • 前端本地數(shù)據(jù)存儲的幾種常見方式總結

    前端本地數(shù)據(jù)存儲的幾種常見方式總結

    在前端開發(fā)中,本地數(shù)據(jù)存儲是實現(xiàn)客戶端數(shù)據(jù)持久化的關鍵技術,以下是幾種常見的前端本地數(shù)據(jù)存儲方式,通過代碼示例講解的非常詳細,需要的朋友可以參考下
    2025-01-01
  • JavaScript中SQL語句的應用實現(xiàn)

    JavaScript中SQL語句的應用實現(xiàn)

    最近一直在用javascript在做項目 可是做著做著 感覺很多功能代碼都是重復的。
    2010-05-05
  • 可視化埋點平臺元素曝光采集intersectionObserver思路實踐

    可視化埋點平臺元素曝光采集intersectionObserver思路實踐

    這篇文章主要為大家介紹了可視化埋點平臺元素曝光采集的思路—intersectionObserver的實戰(zhàn)經(jīng)驗詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2023-01-01
  • Bootstrap的基本應用要點淺析

    Bootstrap的基本應用要點淺析

    BootStrap是基于HTML、CSS和JavaScript的框架,使你只需要寫簡單的代碼就可以很快的搭建一個還不錯的前端框架,他是后端程序員的福音,使他們只需要專注業(yè)務邏輯,而無須浪費太多的精力在界面設計上
    2016-12-12
  • JS中可以改善代碼的5種重構技術分享

    JS中可以改善代碼的5種重構技術分享

    代碼重構涉及在不改變其外部功能的情況下對現(xiàn)有代碼進行改進,這是編程的核心部分之一,所以下面我們將研究一些技巧,這些技巧可以幫助我們以更好的方式重構代碼,希望對大家有所幫助
    2023-06-06
  • JS中Promise函數(shù)then的奧秘探究

    JS中Promise函數(shù)then的奧秘探究

    then()方法用于指定當前實例狀態(tài)發(fā)生改變時的回調函數(shù)。它返回一個新的Promise實例。下面這篇文章主要給大家介紹了關于JS中Promise函數(shù)then的相關資料,需要的朋友可以參考借鑒,下面來一起看看吧
    2018-07-07
  • 簡單了解微信小程序的目錄結構

    簡單了解微信小程序的目錄結構

    這篇文章主要介紹了簡單了解小程序的目錄結構,在開發(fā)小程序之前,我們首先需要對其目錄結構進行了解,以便于提升開發(fā)效率,需要的朋友可以參考下
    2019-07-07

最新評論

丹凤县| 义乌市| 兴文县| 墨玉县| 茌平县| 芜湖市| 九台市| 巴青县| 东阳市| 银川市| 昔阳县| 伊吾县| 桓台县| 略阳县| 郧西县| 从化市| 澄迈县| 滨海县| 凌海市| 信丰县| 英吉沙县| 清徐县| 肇东市| 扎囊县| 东乡族自治县| 高安市| 上虞市| 昌黎县| 湖北省| 新巴尔虎左旗| 咸阳市| 天津市| 垫江县| 甘泉县| 遵义市| 赤壁市| 安义县| 黑山县| 鹤峰县| 湖口县| 澜沧|