• JavaScript


    JS 正则表达式

    • 正则表达式(英文:Regular Expression,在代码中常简写为 regex、regexp 或 RE )使用单个字符串来描述、匹配一系列符合某个句法规则的字符串搜索模式。
    • 正则表达式是由一个字符序列形成的搜索模式
    • 正则表达式可以是一个简单的字符,或一个更复杂的模式
    • 正则表达式可用于所有文本搜索和文本替换的操作

    正则表达式语法

    /正则表达式/修饰符(可选)
    

    实例:

    var patt = /jasner/i
    

    实例解析:

    • /jasner/i 是一个正则表达式
    • jasner 是一个正则表达式主体(用于检索)
    • i 是一个修饰符(表示搜索不区分大小写)

    正则表达式使用字符串方法

    • 在 JS 中,正则表达式通常用于两个字符串方法:search() 和 replace()
    • search() 方法用于检索字符串中指定的子字符串,或检索与正则表达式相匹配的子字符串,并返回子串的起始位置(索引值)
    • replace() 方法用于在字符串中用一些字符替换另一些字符,或替换一个与正则表达式匹配的子串

    search() 方法使用正则

    • 使用正则表达式搜索"jasner"字符串,且不区分大小写
    var str = "Visit myhome";
    var n = str.search(/myhome/i);		// n 的值为 6
    

    search() 方法使用字符串

    • search() 方法可使用字符串作为参数,字符串参数会转换为正则表达式
    var str = "Visit myhome";
    var n = str.search("myhome");		// n 的值为 6
    

    replace() 使用正则

    • 使用正则表达式且不区分大小写将字符串中的 Google 替换为 Baidu
    var str = document.getElementById("demo").innerHTML;
    var txt = str.replace(/Google/i,"Baidu");
    

    replace() 使用字符串

    • replace() 方法将接收字符串作为参数
    var str = document.getElementById("demo").innerHTML;
    var txt = str.replace("Google","Baidu");
    

    正则表达式修饰符

    • 修饰符可以在全局搜索中不区分大小写
    修饰符 描述
    i 执行对大小写不敏感的匹配
    g 执行全局匹配(查找所有匹配而非在找到第一个匹配后停止)
    m 执行多行匹配

    正则表达式模式

    • 方括号 [ ] 用于查找某个范围内的字符
    表达式 描述
    [abc] 查找方括号之间的任何字符
    [0-9] 查找任何从 0 至 9 的数字
    (x|y) 查找任何以 | 分隔的选项
    • 元字符是拥有特殊含义的字符
    元字符 描述
    d 查找数字
    s 查找空白字符
     匹配单词边界
    uxxxx 查找以十六进制数 xxxx 规定的 Unicode 字符
    • 量词
    量词 描述
    n+ 匹配任何包含一个或多个 n 的字符串
    n* 匹配任何包含零个或多个 n 的字符串
    n? 匹配任何包含零个或一个 n 的字符串

    使用 RegExp 对象

    • 在 JS 中,RegExp对象是一个预定义了属性和方法的正则表达式对象

    使用 test()方法

    • test() 方法是一个正则表达式方法
    • test() 方法用于检测一个字符串是否匹配某个模式,如果字符串中含有匹配的文本,则返回 true,否则返回 false
    • 以下实例用于搜索字符串中的字符"e"
    var patt = /e/;
    patt.test("The best things in life are free!");	// 返回 true
    

    使用 exec() 方法

    • exec() 方法是一个正则表达式方法
    • exec() 方法用于检索字符串中的正则表达式的匹配
    • 该函数返回一个数组,其中存放匹配的结果,如果未找到匹配,则返回值为 null
    • 以下实例用于搜索字符串中的字符"e"
    /e/.exec("The best things in life are free!");	// 返回 e
    

    JS 错误 - throw、try 和 catch

    • try 语句测试代码块的错误
    • catch 语句处理错误
    • throw 语句创建自定义错误
    • finally 语句在 try...catch...语句之后,无论是否触发异常,该语句都会执行

    JS 错误

    • 当 JS 引擎执行 JS 代码时,会发生各种错误
    • 可能是语法错误,通常是程序员造成的编码错误或错别字
    • 可能是拼写错误或语言中缺少的功能(可能由于浏览器差异)
    • 可能是由于来自服务器或用户的错误输入而导致的结果
    • 也可能是由于许多其他不可预知的因素

    JS 抛出(throw)错误

    • 当错误发生时,当事情出问题时,JS 引擎通常会停止,并生成一个错误消息
    • 描述这种情况的技术术语是:JS 将抛出(throw)一个错误

    JS try...catch...

    • try 语句允许我们定义在执行时进行错误测试的代码块
    • catch 语句允许我们定义当 try 代码块发生错误时,所执行的代码块
    • JS 中的 try...catch...是成对出现的

    语法:

    try {
        ... // 异常的抛出
    } catch (e) {
        ... // 异常的捕获与处理
    } finally {
        ... // 结束处理
    }
    

    实例:

    var txt = "";
    function message() {
        try {
            addalert("Welcome guest!");
        } catch {
            txt = "本页有一个错误。
    
    ";
            txt += "错误描述:" + err.message + "
    
    ";
            txt += "点击确定继续。
    
    ";
            alert(txt);
        }
    }
    

    JS throw 语句

    • throw 语句允许我们创建自定义错误
    • 正确的技术术语是:创建或抛出异常(exception)
    • 如果把 throw 与 try...catch... 一起使用,那么您能控制程序流,并生成自定义的错误消息
    • 异常可以是 JS 字符串、数字、逻辑值或对象

    语法:

    throw exception
    

    JS finally 语句

    • finally 语句不论之前的 try...catch...中是否产生异常都会执行该代码块

    实例:

    function myFunction() {
        var message,x;
        message = document.getElementById("p01");
        message.innerHTML = "";
        x = document.getElementById("demo").value;
        try {
            if(x == "") throw "值是空的";
            if(isNaN(x)) throw "值不是一个数字";
            x = Number(x);
            if(x > 10) throw "值太大了";
            if(x < 5) throw "值太小了";
        } catch {
            message.innerHTML = "错误:" + err + ".";
        } finally {
            document.getElementById("demo").value = "";
        }
    }
    
  • 相关阅读:
    Mysql权限控制
    Linux查看端口
    linus 下redis守护进程启动
    pymongo创建索引
    mongo批量操作存在更新否则插入
    梯度下降推导过程资料整理
    [转]mitmproxy套件使用攻略及定制化开发
    终极利器!利用appium和mitmproxy登录获取cookies
    how-to-pass-a-class-variable-to-a-decorator-inside-class-definition
    python进阶之魔法函数
  • 原文地址:https://www.cnblogs.com/xdy-/p/13544295.html
Copyright © 2020-2023  润新知