关键词

js正则相关知识点专题

JS正则相关知识点专题

一、正则表达式的概念

正则表达式是对字符串操作的一种逻辑公式,是进行字符串匹配、查找、替换等操作的一种工具。JS中使用RegExp对象来表示正则表达式,可以通过构造函数或直接量来创建一个RegExp对象。

常用的正则表达式元字符有:

  • ^: 匹配字符串开头
  • $: 匹配字符串结尾
  • .: 匹配单个字符
  • *: 匹配前面的字符0或多次
  • +: 匹配前面的字符1或多次
  • ?: 匹配前面的字符0或1次
  • []: 匹配括号中任意一个字符
  • |: 匹配左右任意一个表达式
  • ():分组,可以改变操作优先级

二、正则表达式的使用

1. 通过字面量创建正则表达式

var reg = /abc/;

2. 通过RegExp构造函数创建正则表达式

var reg = new RegExp("abc");
var reg2 = new RegExp("abc", "i"); // 添加第二个参数 i,表示忽略大小写

3. 使用test()方法判断字符串是否符合正则

var reg = /abc/;
var str1 = "abc";
var str2 = "def";
console.log(reg.test(str1)); // true
console.log(reg.test(str2)); // false

4. 使用exec()方法获取匹配到的值

var reg = /abc/;
var str = "abcdeabc";
console.log(reg.exec(str)); // ["abc", index: 0, input: "abcdeabc", groups: undefined]

三、正则表达式必备方法

1. search()方法

search()方法返回字符串中匹配的第一个位置,如果没有找到匹配项,则返回-1

var str = "hello world";
console.log(str.search(/world/)); // 6
console.log(str.search(/word2/)); // -1

2. replace()方法

replace()方法用于替换字符串中符合正则表达式的字符,可接受两个参数,第一个参数是要被替换掉的字符,第二个参数是用来替换的字符。

var str = "hello world houxy";
console.log(str.replace(/hello/g, "hi")); // hi world houxy
console.log(str.replace(/h/g, "H")); // Hello world Houxy

3. match()方法

match()方法用于在字符串中匹配符合正则表达式的值,返回一个数组或null。注意,如果正则表达式不带g标志,则第一个匹配的位置是在结果数组的第一个元素。

var str = "hello world houxy";
console.log(str.match(/o/g)); // ["o", "o", "o"]
console.log(str.match(/he(.+)o/g)); // ["hello", "houxo"]

4. split()方法

split()方法用于将字符串分割成数组,接受一个参数,用于分割字符串的规则。

var str = "hello,world,houxy";
console.log(str.split(",")); // ["hello", "world", "houxy"]
console.log(str.split(/o/)); // ["hell", ",w", "rld, h", "uxy"]

四、示例

1. 判断邮箱格式是否正确

function isEmail(email) {
  var reg = /^[\w-]+(\.[\w-]+)*@[\w-]+(\.[\w-]+)+$/;
  return reg.test(email);
}
console.log(isEmail("abc@163.com")); // true
console.log(isEmail("hello@world")); // false

2. 判断手机号格式是否正确

function isPhone(phone) {
  var reg = /^1[3-9]\d{9}$/;
  return reg.test(phone);
}
console.log(isPhone("13712345678")); // true
console.log(isPhone("1341234")); // false

五、总结

本文详细介绍了JS正则相关的知识点,包括正则表达式的概念、使用方法、必备方法以及两条示例说明,希望可以帮助读者更好地掌握JS正则表达式的使用方法。

本文链接:http://task.lmcjl.com/news/11016.html

展开阅读全文