15个常用的javaScript正则表达式(收藏)
正则表达式(Regular Expression),又称作规则表达式,是用于描述特定模式的字符串,通常用于字符匹配、字符串搜索、字符串替换等用途。JavaScript内置支持正则表达式,并且提供了一系列用于操作正则表达式的API。这篇文章汇总了15个常用的JavaScript正则表达式,让你熟悉它们的应用场景及相关的代码实现。
1. 匹配数字
正则表达式:/^\d+$/
说明:以数字开头和结尾,并且中间包含的字符都是数字,至少包含一位数字。
示例:
console.log(/^\d+$/.test("123")); // true
console.log(/^\d+$/.test("abc123")); // false
2. 匹配字母
正则表达式:/^[a-zA-Z]+$/
说明:以字母开头和结尾,并且中间包含的字符都是字母,至少包含一位字母。
示例:
console.log(/^[a-zA-Z]+$/.test("abc")); // true
console.log(/^[a-zA-Z]+$/.test("abc123")); // false
3. 匹配邮箱地址
正则表达式:/^\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*$/
说明:匹配标准的邮箱地址格式,以字母、数字、下划线为合法字符,要求必须包含@和.符号,并且@符号不能作为开头或结尾。
示例:
console.log(/^\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*$/.test("test@example.com")); // true
console.log(/^\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*$/.test("test@example..com")); // false
4. 匹配手机号码
正则表达式:/^1[3456789]\d{9}$/
说明:匹配中国大陆地区的手机号码格式,以1开头,第二位是3到9中的数字,后面跟着9位数字。
示例:
console.log(/^1[3456789]\d{9}$/.test("13812345678")); // true
console.log(/^1[3456789]\d{9}$/.test("12345678999")); // false
5. 匹配IP地址
正则表达式:/^((25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.){3}(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)$/
说明:匹配IPv4地址格式,包含4个数字段,每个段的取值范围是0-255。
示例:
console.log(/^((25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.){3}(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)$/.test("192.168.1.1")); // true
console.log(/^((25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.){3}(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)$/.test("256.256.256.256")); // false
6. 匹配URL地址
正则表达式:/^((ht|f)tps?):\/\/[\w\-]+(\.[\w\-]+)+([\w\-\.,@?^=%&:\+#]*[\w\-\@?^=%&\/\+#])?$/
说明:匹配URL地址格式,支持http、https、ftp协议。
示例:
console.log(/^((ht|f)tps?):\/\/[\w\-]+(\.[\w\-]+)+([\w\-\.,@?^=%&:\+#]*[\w\-\@?^=%&\/\+#])?$/.test("https://www.example.com/path/to/page")); // true
console.log(/^((ht|f)tps?):\/\/[\w\-]+(\.[\w\-]+)+([\w\-\.,@?^=%&:\+#]*[\w\-\@?^=%&\/\+#])?$/.test("example.com")); // false
7. 匹配汉字
正则表达式:/^[\u4e00-\u9fa5]+$/
说明:匹配包含一个或多个汉字的字符串。
示例:
console.log(/^[\u4e00-\u9fa5]+$/.test("中文汉字")); // true
console.log(/^[\u4e00-\u9fa5]+$/.test("ABC汉字123")); // false
8. 匹配邮政编码
正则表达式:/^\d{6}$/
说明:匹配中国大陆地区的邮政编码,包含6位数字。
示例:
console.log(/^\d{6}$/.test("100000")); // true
console.log(/^\d{6}$/.test("1000000")); // false
9. 匹配身份证号码
正则表达式:/^\d{15}(\d{2}[0-9xX])?$/
说明:匹配中国大陆地区的身份证号码,包含18位数字或15位数字加一个字母X。
示例:
console.log(/^\d{15}(\d{2}[0-9xX])?$/.test("11010119900307235X")); // true
console.log(/^\d{15}(\d{2}[0-9xX])?$/.test("11010119900307235Y")); // false
10. 匹配日期格式
正则表达式:/^\d{4}-\d{1,2}-\d{1,2}$/
说明:匹配标准的日期格式,格式为yyyy-mm-dd,其中月份和日期的数字位数不超过2。
示例:
console.log(/^\d{4}-\d{1,2}-\d{1,2}$/.test("2022-08-01")); // true
console.log(/^\d{4}-\d{1,2}-\d{1,2}$/.test("2022-08-1")); // true
console.log(/^\d{4}-\d{1,2}-\d{1,2}$/.test("2022-8-1")); // true
console.log(/^\d{4}-\d{1,2}-\d{1,2}$/.test("22-08-01")); // false
11. 匹配非负整数
正则表达式:/^\d+$/
说明:匹配非负整数,包含0和正整数。
示例:
console.log(/^\d+$/.test("123")); // true
console.log(/^\d+$/.test("-123")); // false
12. 匹配正整数
正则表达式:/^[1-9]\d*$/
说明:匹配正整数,不包含0。
示例:
console.log(/^[1-9]\d*$/.test("123")); // true
console.log(/^[1-9]\d*$/.test("0")); // false
13. 匹配非正整数
正则表达式:/^((-\d+)|(0+))$/
说明:匹配非正整数,包含0和负整数。
示例:
console.log(/^((-\d+)|(0+))$/.test("-123")); // true
console.log(/^((-\d+)|(0+))$/.test("123")); // false
14. 匹配整数
正则表达式:`/^(-?\d+)$/
说明:匹配包含一个或多个整数的字符串,包括正、负整数和0。
示例:
console.log(/^(-?\d+)$/.test("123")); // true
console.log(/^(-?\d+)$/.test("-123")); // true
console.log(/^(-?\d+)$/.test("0")); // true
15. 匹配浮点数
正则表达式:`/^(-?\d+)(.\d+)?$/
说明:匹配包含一个或多个浮点数的字符串,包括正、负浮点数和整数。其中小数部分可以省略。
示例:
console.log(/^(-?\d+)(\.\d+)?$/.test("123.45")); // true
console.log(/^(-?\d+)(\.\d+)?$/.test("-123.45")); // true
console.log(/^(-?\d+)(\.\d+)?$/.test("0.123")); // true
console.log(/^(-?\d+)(\.\d+)?$/.test("123.")); // true
console.log(/^(-?\d+)(\.\d+)?$/.test("123")); // true
console.log(/^(-?\d+)(\.\d+)?$/.test("abc")); // false
注意:上述正则表达式仅供参考,具体使用时需要结合实际情况进行调整。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:15个常用的javaScript正则表达式(收藏) - Python技术站