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正则表达式的使用方法。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:js正则相关知识点专题 - Python技术站