RegExp 随笔 JavaScript RegExp 对象
RegExp 对象在 JavaScript 中用于执行正则表达式的匹配。
本文将为您介绍 RegExp 对象的使用、创建、使用方法和属性等内容。
RegExp 对象的创建
由于正则表达式是用特殊的语法来描述字符串模式的,因此我们需要先定义一个字符串作为正则表达式的模式描述,然后使用 RegExp 对象的构造函数来创建正则表达式对象。
- 直接定义正则表达式
我们可以使用以下的语法直接定义正则表达式:
var reg = /pattern/flags;
其中:
pattern
是正则表达式的模式描述,用于匹配文本中的模式。flags
是可选的标志,用于修改搜索的模式。例如 "i" 标志表示忽略大小写,"g" 标志表示全局匹配。
例如:
var reg = /[a-zA-Z]+/; // 匹配一个或多个英文字母
var str = "123 Hello World!";
console.log(str.match(reg)); // 输出 ["Hello"]
- 调用 RegExp 构造函数
我们也可以通过调用 RegExp 对象的构造函数来创建正则表达式对象:
var reg = new RegExp(pattern, flags);
其中:
pattern
是正则表达式的模式描述,用于匹配文本中的模式。flags
是可选的标志,用于修改搜索的模式。例如 "i" 标志表示忽略大小写,"g" 标志表示全局匹配。
例如:
var reg = new RegExp("[a-zA-Z]+", "g"); // 匹配一个或多个英文字母,并全局匹配
var str = "123 Hello World!";
console.log(str.match(reg)); // 输出 ["Hello", "World"]
RegExp 对象的使用
RegExp 对象有以下常见的方法和属性。
test() 方法
test()
方法用于检查字符串中是否存在匹配正则表达式的子串,如果找到匹配的子串则返回 true,否则返回 false。
var reg = /abc/;
console.log(reg.test("123 abc")); // true
console.log(reg.test("123 Abc")); // false
exec() 方法
exec()
方法用于检索字符串中与正则表达式匹配的子串,如果找到匹配的子串,则返回一个数组,数组中存储了匹配的子串以及捕获分组的内容,否则返回 null。
var reg = /(\d+)-(\w+)/;
var str = "2022-javascipt";
var result = reg.exec(str);
console.log(result); // 输出 ["2022-javascipt", "2022", "javascript"]
source 属性
source
属性用于返回正则表达式的模式描述字符串。
var reg = /abc/;
console.log(reg.source); // "abc"
lastIndex 属性
lastIndex
属性用于设置或返回下次匹配的起始位置。
var reg = /abc/g;
var str = "abc abc abc";
console.log(reg.lastIndex); // 0
reg.exec(str);
console.log(reg.lastIndex); // 3
reg.exec(str);
console.log(reg.lastIndex); // 6
示例说明
- 匹配 URL
以下示例演示了如何使用正则表达式匹配 URL。
var url = "https://www.example.com/path/index.htm?foo=1&bar=2";
var reg = /^(\w+):\/\/([^\/]+)(\/[^?]+)?(\?[^#]+)?(#.+)?$/;
var result = reg.exec(url);
console.log(result[1]); // "https"
console.log(result[2]); // "www.example.com"
console.log(result[3]); // "/path/index.htm"
console.log(result[4]); // "?foo=1&bar=2"
console.log(result[5]); // ""
- 匹配电话号码
以下示例演示了如何使用正则表达式匹配电话号码。
var phone = "13612345678";
var reg = /^1[3-9]\d{9}$/;
console.log(reg.test(phone)); // true
以上就是 RegExp 随笔 JavaScript RegExp 对象的完整攻略。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:RegExp 随笔 JavaScript RegExp 对象 - Python技术站