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 = "";
    }
}
原文地址:https://www.cnblogs.com/xdy-/p/13544295.html