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

JavaScript 正則表達式與字符串查找方法

 更新時間:2018年07月23日 10:02:54   作者:小船劃向前端  
今天小編就為大家分享一篇JavaScript 正則表達式與字符串查找方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧

首先提出一個問題:

如何取得一個給定的字符串substr在另一個字符串str中出現(xiàn)的次數(shù)?

字符串匹配,第一想到的就是正則表達式,但我們最常使用的字面量來創(chuàng)建的正則表達式方式卻無法傳入變量,

這時應該使用另一種創(chuàng)建正則表達式的方式:構造函數(shù),如下

var reg = new RegExp(substr, "g");

其中第一個參數(shù)表示要匹配的字符串模式,因此可以傳入變量,不需要加/ /,第二個參數(shù)是可選的標志字符串。

可以傳入變量了,再介紹個字符串基本包裝類型的方法:match()

語法為str.match(regExp),參數(shù)為一個正則表達式,若傳的不是正則則會隱式轉換,返回值為一個包含匹配結果的數(shù)組,如果沒有匹配項,則返回null。

另外,字符串的match方法與正則的exec()類似,返回匹配的詳細信息;字符串的search方法與正則的test()類似,只是用來查看是否匹配。

回到最初的問題,完整的程序如下:

var str1 = "abctestctesqk1test23";
var str2 = "test";
 
function countSubstr(str, substr) {
  var reg = new RegExp(substr, "g");
  return str.match(reg) ? str.match(reg).length : 0;//若match返回不為null,則結果為true,輸出match返回的數(shù)組(["test","test"])的長度
}
console.log(countSubstr(str1, str2));//輸出2

另外,對于變量的問題,不使用構造函數(shù)也可以解決,即使用eval():

var reg = "/" + substr + "/g";
reg = eval(reg);//不推薦!

但都知道不推薦使用eval()方法,所以還是推薦使用構造函數(shù)方法。

但還是有個問題,如果子字符串中含有正則表達式中所謂的元字符(即+*?^等),則無法正常匹配。

因為此時正則表達式是在字符串里的,\是字符串中的轉義符,也是正則表達式中的轉義符。那么只加一個\的話,只能說明在字符串中轉義,而js需要進一步把普通字符串中的\變成正則表達式中的\,像是更深一則轉化的意思,稱為雙重轉義,這樣\\以后的意思是正則表達式中的轉義符(\)。

所以對于那些元字符如果不進行雙重轉義,則無法真正查找要找的那個字符。這個問題尚未解決,不過一般字符串查找也很少有這些特殊字符吧,可以先一用。

以上這篇JavaScript 正則表達式與字符串查找方法就是小編分享給大家的全部內容了,希望能給大家一個參考,也希望大家多多支持腳本之家。

相關文章

  • 詳解正則表達式 \v 元字符

    詳解正則表達式 \v 元字符

    正則表達式是一種文本模式,包括普通字符(例如,a 到 z 之間的字母)和特殊字符(稱為“元字符”)。模式描述在搜索文本時要匹配的一個或多個字符串。\v元字符可以匹配垂直制表符。下面給大家介紹正則表達式 \v 元字符,感興趣的朋友一起看看吧
    2018-01-01
  • linux grep正則表達式與grep用法詳解

    linux grep正則表達式與grep用法詳解

    在此首先大家要牢記:正則表達式與通配符不一樣,它們表示的含義并不相同。正則表達式應用非常廣泛,但是大家很少有過整理吧,下面腳本之家的小編整理了關于正則表達式的描述,還比較詳細,在此分享給大家,感興趣的朋友可以參考下。
    2015-09-09
  • 正則表達式教程之前后查找lookaround詳解

    正則表達式教程之前后查找lookaround詳解

    這篇文章主要介紹了正則表達式教程之前后查找lookaround,結合具體問題分析了向前查找及向后查找功能的實現(xiàn)技巧與注意事項,需要的朋友可以參考下
    2017-01-01
  • JS中正則表達式全局匹配正斜杠的方法

    JS中正則表達式全局匹配正斜杠的方法

    這篇文章主要介紹了JS中正則表達式全局匹配正斜杠的方法,本文給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2023-03-03
  • editplus EmEditor和searchandreplace正則表達式

    editplus EmEditor和searchandreplace正則表達式

    掌握下面的正則方便我們快速的批量處理文本替換。
    2009-07-07
  • 如何使用正則去掉html中標簽與標簽之間的空格

    如何使用正則去掉html中標簽與標簽之間的空格

    文章介紹了如何使用正則表達式去除HTML標簽之間多余的空格,包括處理多個空格、換行符、排除<pre>標簽內的空格以及處理標簽內的空格,提供了三種JavaScript正則表達式解決方案,并解釋了它們的優(yōu)缺點,感興趣的朋友跟隨小編一起看看吧
    2024-11-11
  • 正則表達式中最短匹配模式的用法淺析

    正則表達式中最短匹配模式的用法淺析

    最短匹配應用于:假如有一段文本,你只想匹配最短的可能,而不是最長。下面這篇文章主要給大家介紹了關于正則表達式中最短匹配模式用法的相關資料,文中介紹的非常詳細,需要的朋友可以參考借鑒,下面來一起看看吧。
    2017-07-07
  • ubb js

    ubb js

    ubb js...
    2006-06-06
  • Android中手機號、車牌號正則表達式大全

    Android中手機號、車牌號正則表達式大全

    這篇文章主要介紹了Android中手機號、車牌號正則表達式的相關資料,需要的朋友可以參考下
    2015-09-09
  • js正則匹配markdown里的圖片標簽的實現(xiàn)

    js正則匹配markdown里的圖片標簽的實現(xiàn)

    這篇文章主要介紹了js正則匹配markdown里的圖片標簽的實現(xiàn),文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2020-12-12

最新評論

乌鲁木齐县| 邻水| 宝山区| 万宁市| 静宁县| 台东市| 敦煌市| 望城县| 石河子市| 澄城县| 岳西县| 南涧| 得荣县| 霍林郭勒市| 土默特右旗| 新晃| 大竹县| 治多县| 巍山| 朝阳县| 长兴县| 平南县| 修文县| 昆明市| 左云县| 亳州市| 兴山县| 秭归县| 丰顺县| 石门县| 保山市| 海口市| 汝州市| 青神县| 昌吉市| 淮滨县| 兴国县| 濮阳县| 四平市| 井陉县| 霍城县|