JavaScript里面的正則以及eval


1、eval

JavaScript中的eval是Python中eval和exec的合集,既可以編譯代碼也可以獲取返回值。

  • eval() 
  • EvalError   執行字符串中的JavaScript代碼

 

2、正則表達式

(1)、定義正則表達式

  • /.../  用於定義正則表達式
  • /.../g 表示全局匹配
  • /.../i 表示不區分大小寫
  • /.../m 表示多行匹配
    JS正則匹配時本身就是支持多行,此處多行匹配只是影響正則表達式^和$,m模式也會使用^$來匹配換行的內容)

(2)、匹配

JavaScript中支持正則表達式,其主要提供了兩個功能:

  test(string)     檢查字符串中是否和正則匹配

n = 'uui99sdf'
reg = /\d+/
reg.test(n)  ---> true
 
# 只要正則在字符串中存在就匹配,如果想要開頭和結尾匹配的話,就需要在正則前后加 ^和$

  exec(string)    獲取正則表達式匹配的內容,如果未匹配,值為null,否則,獲取匹配成功的數組。

獲取正則表達式匹配的內容,如果未匹配,值為null,否則,獲取匹配成功的數組。
 
非全局模式
    獲取匹配結果數組,注意:第一個元素是第一個匹配的結果,后面元素是正則子匹配(正則內容分組匹配)
    var pattern = /\bJava\w*\b/;
    var text = "JavaScript is more fun than Java or JavaBeans!";
    result = pattern.exec(text)
 
    var pattern = /\b(Java)\w*\b/;
    var text = "JavaScript is more fun than Java or JavaBeans!";
    result = pattern.exec(text)
 
全局模式
    需要反復調用exec方法,來一個一個獲取結果,直到匹配獲取結果為null表示獲取完畢
    var pattern = /\bJava\w*\b/g;
    var text = "JavaScript is more fun than Java or JavaBeans!";
    result = pattern.exec(text)
 
    var pattern = /\b(Java)\w*\b/g;
    var text = "JavaScript is more fun than Java or JavaBeans!";
    result = pattern.exec(text)

  3、字符串中相關方法

obj.search(regexp)                   獲取索引位置,搜索整個字符串,返回匹配成功的第一個位置(g模式無效)
obj.match(regexp)                    獲取匹配內容,搜索整個字符串,獲取找到第一個匹配內容,如果正則是g模式找到全部
obj.replace(regexp, replacement)     替換匹配替換,正則中有g則替換所有,否則只替換第一個匹配項,
                                        $數字:匹配的第n個組內容;
                                          $&:當前匹配的內容;
                                          $`:位於匹配子串左側的文本;
                                          $':位於匹配子串右側的文本
                                          $$:直接量$符號

  


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM