正则表达式是对字符串操作的一种逻辑公式,是进行字符串匹配、查找、替换等操作的一种工具。JS中使用RegExp对象来表示正则表达式,可以通过构造函数或直接量来创建一个RegExp对象。
常用的正则表达式元字符有:
^
: 匹配字符串开头$
: 匹配字符串结尾.
: 匹配单个字符*
: 匹配前面的字符0或多次+
: 匹配前面的字符1或多次?
: 匹配前面的字符0或1次[]
: 匹配括号中任意一个字符|
: 匹配左右任意一个表达式()
:分组,可以改变操作优先级var reg = /abc/;
var reg = new RegExp("abc");
var reg2 = new RegExp("abc", "i"); // 添加第二个参数 i,表示忽略大小写
var reg = /abc/;
var str1 = "abc";
var str2 = "def";
console.log(reg.test(str1)); // true
console.log(reg.test(str2)); // false
var reg = /abc/;
var str = "abcdeabc";
console.log(reg.exec(str)); // ["abc", index: 0, input: "abcdeabc", groups: undefined]
search()方法返回字符串中匹配的第一个位置,如果没有找到匹配项,则返回-1
var str = "hello world";
console.log(str.search(/world/)); // 6
console.log(str.search(/word2/)); // -1
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
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"]
split()方法用于将字符串分割成数组,接受一个参数,用于分割字符串的规则。
var str = "hello,world,houxy";
console.log(str.split(",")); // ["hello", "world", "houxy"]
console.log(str.split(/o/)); // ["hell", ",w", "rld, h", "uxy"]
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
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