正则表达式完整版(2025最新)
文章目录
常见的正则表达式
手机号校验
- 中国大陆手机号一般是 11 位数字,以 1 开头,第二位可能是 3、4、5、6、7、8、9 等。
- 正则表达式:
/^1[3456789]\d{9}$/
- 解释:
^
表示匹配字符串的开始。1
表示手机号以 1 开头。[3456789]
表示第二位是 3 到 9 中的任意一个数字。\d{9}
表示后面跟着 9 位数字。$
表示匹配字符串的结束。
邮箱校验
- 正则表达式:
/^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}$/
- 解释:
^
匹配字符串开始。[a-zA-Z0-9._%+-]+
表示用户名部分,可以包含字母、数字、点、下划线、百分号、加号和减号,且至少有一个字符。@
匹配@
符号。[a-zA-Z0-9.-]+
表示域名部分,包含字母、数字、点和减号。\.
匹配实际的点号(因为点号在正则中有特殊含义,所以需要转义)。[a-zA-Z]{2,}
表示顶级域名,至少有两个字母。$
匹配字符串结束。
身份证号码校验(18 位)
- 正则表达式:
/^[1-9]\d{5}(18|19|20)\d{2}(0[1-9]|1[0-2])(0[1-9]|[12]\d|3[01])\d{3}[0-9Xx]$/
- 解释:
^
匹配字符串开始。[1-9]\d{5}
表示前 6 位地址码,第一位不能是 0。(18|19|20)\d{2}
表示年份,限定在 1800 到 2099 之间。(0[1-9]|1[0-2])
表示月份,01 到 12。(0[1-9]|[12]\d|3[01])
表示日期,根据月份合理取值。\d{3}
表示顺序码。[0-9Xx]
表示校验码,X 可以是大写或小写。$
匹配字符串结束。
密码强度校验(至少包含字母和数字,长度 8 到 20 位)
- 正则表达式:
/^(?=.*[a-zA-Z])(?=.*\d)[a-zA-Z\d]{8,20}$/
- 解释:
^
匹配字符串开始。(?=.*[a-zA-Z])
是一个正向预查,表示字符串中至少有一个字母。(?=.*\d)
是一个正向预查,表示字符串中至少有一个数字。[a-zA-Z\d]{8,20}
表示由字母和数字组成,长度在 8 到 20 位之间。$
匹配字符串结束。
URL 校验
- 正则表达式:
/^(https?|ftp):\/\/([a-zA-Z0-9.-]+(\:[a-zA-Z0-9.&%$-]+)*@)*((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]?)|([a-zA-Z0-9-]+\.)*[a-zA-Z0-9-]+\.(com|edu|gov|int|mil|net|org|biz|arpa|info|name|pro|aero|coop|museum|[a-zA-Z]{2})(:\d+)?(\/($|[a-zA-Z0-9.,?'\\+&%$#=~_-]+))*$/
- 解释:
^
匹配字符串开始。(https?|ftp)
匹配协议,可以是http
、https
或ftp
。:\/\/
匹配://
分隔符。- 后面复杂的部分是对域名、IP 地址、端口、路径等的匹配和限定。
$
匹配字符串结束。
整数校验
- 正则表达式:
/^-?\d+$/
- 解释:
^
匹配字符串开始。-?
表示可以有一个可选的负号。\d+
表示一个或多个数字。$
匹配字符串结束。
正整数校验
- 正则表达式:
/^[1-9]\d*$/
- 解释:
^
匹配字符串开始。[1-9]
表示第一位不能是 0,必须是 1 到 9 中的一个数字。\d*
表示后面可以跟零个或多个数字。$
匹配字符串结束。
浮点数校验
- 正则表达式:
/^-?\d+(\.\d+)?$/
- 解释:
^
匹配字符串开始。-?
表示可以有一个可选的负号。\d+
表示整数部分,至少一个数字。(\.\d+)?
表示小数部分是可选的,\.
匹配点号,\d+
表示至少一个数字。$
匹配字符串结束。
日期校验(YYYY-MM-DD 格式)
- 正则表达式:
/^((((1[6-9]|[2-9]\d)\d{2})(0[13578]|1[02])(0[1-9]|[12]\d|3[01]))|(((1[6-9]|[2-9]\d)\d{2})(0[13456789]|1[012])(0[1-9]|[12]\d|30))|(((1[6-9]|[2-9]\d)\d{2})02(0[1-9]|1\d|2[0-8]))|((((1[6-9]|[2-9]\d)(0[48]|[2468][048]|[13579][26]))|((16|[2468][048]|[3579][26])00))0229))$/
- 解释:
^
表示匹配字符串的开始。- 整体是多个分组的或关系(
|
)。 ((((1[6-9]|[2-9]\d)\d{2})(0[13578]|1[02])(0[1-9]|[12]\d|3[01]))
匹配大月(1、3、5、7、8、10、12 月)有 31 天的日期,年份部分(1[6-9]|[2-9]\d)\d{2}
表示 1600 年到 9999 年。(((1[6-9]|[2-9]\d)\d{2})(0[13456789]|1[012])(0[1-9]|[12]\d|30))
匹配小月(除 2 月外有 30 天的月份)的日期。(((1[6-9]|[2-9]\d)\d{2})02(0[1-9]|1\d|2[0-8]))
匹配平年 2 月(28 天)的日期。((((1[6-9]|[2-9]\d)(0[48]|[2468][048]|[13579][26]))|((16|[2468][048]|[3579][26])00))0229))
匹配闰年 2 月(29 天)的日期,闰年的判断条件是能被 4 整除但不能被 100 整除,或者能被 400 整除。$
表示匹配字符串的结束。
车牌号校验(以中国大陆为例,普通民用汽车号牌)
- 正则表达式:
/^[京津沪渝冀豫云辽黑湘皖鲁新苏浙赣鄂桂甘晋蒙陕吉闽贵粤青藏川宁琼使领A-Z]{1}[A-Z]{1}[A-Z0-9]{4}[A-Z0-9挂学警港澳]{1}$/
- 解释:
^
匹配字符串开始。[京津沪渝冀豫云辽黑湘皖鲁新苏浙赣鄂桂甘晋蒙陕吉闽贵粤青藏川宁琼使领A-Z]{1}
表示省份简称或特殊标识(如使、领),是一个字符。[A-Z]{1}
表示地区代码,为一个大写字母。[A-Z0-9]{4}
表示 4 位字母或数字。[A-Z0-9挂学警港澳]{1}
表示最后一位可能是字母、数字,或者特殊标识(挂、学、警、港、澳)。$
匹配字符串结束。
邮政编码校验(中国大陆)
- 正则表达式:
/^[1-9]\d{5}$/
- 解释:
^
匹配字符串开始。[1-9]
表示第一位不能为 0,是 1 到 9 中的一个数字。\d{5}
表示后面跟着 5 位数字。$
匹配字符串结束。
中文姓名校验(一般情况,假设姓名为 2 到 4 个汉字)
- 正则表达式:
/^[\u4e00-\u9fa5]{2,4}$/
- 解释:
^
匹配字符串开始。[\u4e00-\u9fa5]
表示匹配一个汉字,\u4e00
到\u9fa5
是 Unicode 中汉字的编码范围。{2,4}
表示匹配 2 到 4 个这样的汉字。$
匹配字符串结束。
英文单词校验(由字母组成,可包含连字符,长度不限)
- 正则表达式:
/^[a-zA-Z-]+$/
- 解释:
^
匹配字符串开始。[a-zA-Z-]
表示可以是大写或小写字母,也可以是连字符。+
表示一个或多个这样的字符。$
匹配字符串结束。
-
IPv4 地址校验
- 正则表达式:
/^(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)$/
- 解释:
^
匹配字符串开始。(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)
表示每个部分(0 到 255 的数字)的匹配规则,分别处理了不同范围的数字情况。\.
匹配实际的点号(转义)。- 重复四次上述部分来匹配 IPv4 地址的四个字节。
$
匹配字符串结束。
- 正则表达式:
-
银行卡号校验(一般 16 到 19 位数字)
- 正则表达式:
/^\d{16,19}$/
- 解释:
^
匹配字符串开始。\d{16,19}
表示由 16 到 19 位数字组成。$
匹配字符串结束。
- 正则表达式:
相关方法实现
Java 实现
import java.util.regex.Pattern;
public class RegexValidation {
// 手机号校验
public static boolean validatePhoneNumber(String phoneNumber) {
String regex = "^1[3456789]\\d{9}$";
return Pattern.matches(regex, phoneNumber);
}
// 邮箱校验
public static boolean validateEmail(String email) {
String regex = "^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\\.[a-zA-Z]{2,}$";
return Pattern.matches(regex, email);
}
// 身份证号码校验(18 位)
public static boolean validateIDCard(String idCard) {
String regex = "^[1-9]\\d{5}(18|19|20)\\d{2}(0[1-9]|1[0-2])(0[1-9]|[12]\\d|3[01])\\d{3}[0-9Xx]$";
return Pattern.matches(regex, idCard);
}
// 密码强度校验(至少包含字母和数字,长度 8 到 20 位)
public static boolean validatePassword(String password) {
String regex = "^(?=.*[a-zA-Z])(?=.*\\d)[a-zA-Z\\d]{8,20}$";
return Pattern.matches(regex, password);
}
// URL 校验
public static boolean validateURL(String url) {
String regex = "^(https?|ftp):\\/\\/([a-zA-Z0-9.-]+(\\:[a-zA-Z0-9.&%$-]+)*@)*((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]?)|([a-zA-Z0-9-]+\\.)*[a-zA-Z0-9-]+\\.(com|edu|gov|int|mil|net|org|biz|arpa|info|name|pro|aero|coop|museum|[a-zA-Z]{2})(:\\d+)?(\\/($|[a-zA-Z0-9.,?'\\\\+&%$#=~_-]+))*$";
return Pattern.matches(regex, url);
}
// 整数校验
public static boolean validateInteger(String number) {
String regex = "^-?\\d+$";
return Pattern.matches(regex, number);
}
// 正整数校验
public static boolean validatePositiveInteger(String number) {
String regex = "^[1-9]\\d*$";
return Pattern.matches(regex, number);
}
// 浮点数校验
public static boolean validateFloat(String number) {
String regex = "^-?\\d+(\\.\\d+)?$";
return Pattern.matches(regex, number);
}
// 日期校验(YYYY-MM-DD 格式)
public static boolean validateDate(String date) {
String regex = "^((((1[6-9]|[2-9]\\d)\\d{2})(0[13578]|1[02])(0[1-9]|[12]\\d|3[01]))|(((1[6-9]|[2-9]\\d)\\d{2})(0[13456789]|1[012])(0[1-9]|[12]\\d|30))|(((1[6-9]|[2-9]\\d)\\d{2})02(0[1-9]|1\\d|2[0-8]))|((((1[6-9]|[2-9]\\d)(0[48]|[2468][048]|[13579][26]))|((16|[2468][048]|[3579][26])00))0229))$";
return Pattern.matches(regex, date);
}
// 车牌号校验
public static boolean validateLicensePlate(String licensePlate) {
String regex = "^[京津沪渝冀豫云辽黑湘皖鲁新苏浙赣鄂桂甘晋蒙陕吉闽贵粤青藏川宁琼使领A-Z]{1}[A-Z]{1}[A-Z0-9]{4}[A-Z0-9挂学警港澳]{1}$";
return Pattern.matches(regex, licensePlate);
}
// 邮政编码校验
public static boolean validatePostalCode(String postalCode) {
String regex = "^[1-9]\\d{5}$";
return Pattern.matches(regex, postalCode);
}
// 中文姓名校验
public static boolean validateChineseName(String name) {
String regex = "^[\\u4e00-\\u9fa5]{2,4}$";
return Pattern.matches(regex, name);
}
// 英文单词校验
public static boolean validateEnglishWord(String word) {
String regex = "^[a-zA-Z-]+$";
return Pattern.matches(regex, word);
}
// IPv4 地址校验
public static boolean validateIPv4(String ip) {
String regex = "^(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)$";
return Pattern.matches(regex, ip);
}
// 银行卡号校验
public static boolean validateBankCard(String bankCard) {
String regex = "^\\d{16,19}$";
return Pattern.matches(regex, bankCard);
}
public static void main(String[] args) {
// 示例测试
System.out.println(validatePhoneNumber("13800138000"));
System.out.println(validateEmail("test@example.com"));
}
}
Python 实现
import re
# 手机号校验
def validate_phone_number(phone_number):
regex = r'^1[3456789]\d{9}$'
return bool(re.match(regex, phone_number))
# 邮箱校验
def validate_email(email):
regex = r'^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}$'
return bool(re.match(regex, email))
# 身份证号码校验(18 位)
def validate_id_card(id_card):
regex = r'^[1-9]\d{5}(18|19|20)\d{2}(0[1-9]|1[0-2])(0[1-9]|[12]\d|3[01])\d{3}[0-9Xx]$'
return bool(re.match(regex, id_card))
# 密码强度校验(至少包含字母和数字,长度 8 到 20 位)
def validate_password(password):
regex = r'^(?=.*[a-zA-Z])(?=.*\d)[a-zA-Z\d]{8,20}$'
return bool(re.match(regex, password))
# URL 校验
def validate_url(url):
regex = r'^(https?|ftp):\/\/([a-zA-Z0-9.-]+(\:[a-zA-Z0-9.&%$-]+)*@)*((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]?)|([a-zA-Z0-9-]+\.)*[a-zA-Z0-9-]+\.(com|edu|gov|int|mil|net|org|biz|arpa|info|name|pro|aero|coop|museum|[a-zA-Z]{2})(:\d+)?(\/($|[a-zA-Z0-9.,?\'\\+&%$#=~_-]+))*$'
return bool(re.match(regex, url))
# 整数校验
def validate_integer(number):
regex = r'^-?\d+$'
return bool(re.match(regex, number))
# 正整数校验
def validate_positive_integer(number):
regex = r'^[1-9]\d*$'
return bool(re.match(regex, number))
# 浮点数校验
def validate_float(number):
regex = r'^-?\d+(\.\d+)?$'
return bool(re.match(regex, number))
# 日期校验(YYYY-MM-DD 格式)
def validate_date(date):
regex = r'^((((1[6-9]|[2-9]\d)\d{2})(0[13578]|1[02])(0[1-9]|[12]\d|3[01]))|(((1[6-9]|[2-9]\d)\d{2})(0[13456789]|1[012])(0[1-9]|[12]\d|30))|(((1[6-9]|[2-9]\d)\d{2})02(0[1-9]|1\d|2[0-8]))|((((1[6-9]|[2-9]\d)(0[48]|[2468][048]|[13579][26]))|((16|[2468][048]|[3579][26])00))0229))$'
return bool(re.match(regex, date))
# 车牌号校验
def validate_license_plate(license_plate):
regex = r'^[京津沪渝冀豫云辽黑湘皖鲁新苏浙赣鄂桂甘晋蒙陕吉闽贵粤青藏川宁琼使领A-Z]{1}[A-Z]{1}[A-Z0-9]{4}[A-Z0-9挂学警港澳]{1}$'
return bool(re.match(regex, license_plate))
# 邮政编码校验
def validate_postal_code(postal_code):
regex = r'^[1-9]\d{5}$'
return bool(re.match(regex, postal_code))
# 中文姓名校验
def validate_chinese_name(name):
regex = r'^[\u4e00-\u9fa5]{2,4}$'
return bool(re.match(regex, name))
# 英文单词校验
def validate_english_word(word):
regex = r'^[a-zA-Z-]+$'
return bool(re.match(regex, word))
# IPv4 地址校验
def validate_ipv4(ip):
regex = r'^((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]?)$'
return bool(re.match(regex, ip))
# 银行卡号校验
def validate_bank_card(bank_card):
regex = r'^\d{16,19}$'
return bool(re.match(regex, bank_card))
# 示例测试
print(validate_phone_number("13800138000"))
print(validate_email("test@example.com"))
C++ 实现
#include <iostream>
#include <regex>
#include <string>
// 手机号校验
bool validatePhoneNumber(const std::string& phoneNumber) {
std::regex regex("^1[3456789]\\d{9}$");
return std::regex_match(phoneNumber, regex);
}
// 邮箱校验
bool validateEmail(const std::string& email) {
std::regex regex("^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\\.[a-zA-Z]{2,}$");
return std::regex_match(email, regex);
}
// 身份证号码校验(18 位)
bool validateIDCard(const std::string& idCard) {
std::regex regex("^[1-9]\\d{5}(18|19|20)\\d{2}(0[1-9]|1[0-2])(0[1-9]|[12]\\d|3[01])\\d{3}[0-9Xx]$");
return std::regex_match(idCard, regex);
}
// 密码强度校验(至少包含字母和数字,长度 8 到 20 位)
bool validatePassword(const std::string& password) {
std::regex regex("^(?=.*[a-zA-Z])(?=.*\\d)[a-zA-Z\\d]{8,20}$");
return std::regex_match(password, regex);
}
// URL 校验
bool validateURL(const std::string& url) {
std::regex regex("^(https?|ftp):\\/\\/([a-zA-Z0-9.-]+(\\:[a-zA-Z0-9.&%$-]+)*@)*((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]?)|([a-zA-Z0-9-]+\\.)*[a-zA-Z0-9-]+\\.(com|edu|gov|int|mil|net|org|biz|arpa|info|name|pro|aero|coop|museum|[a-zA-Z]{2})(:\\d+)?(\\/($|[a-zA-Z0-9.,?'\\\\+&%$#=~_-]+))*$");
return std::regex_match(url, regex);
}
// 整数校验
bool validateInteger(const std::string& number) {
std::regex regex("^-?\\d+$");
return std::regex_match(number, regex);
}
// 正整数校验
bool validatePositiveInteger(const std::string& number) {
std::regex regex("^[1-9]\\d*$");
return std::regex_match(number, regex);
}
// 浮点数校验
bool validateFloat(const std::string& number) {
std::regex regex("^-?\\d+(\\.\\d+)?$");
return std::regex_match(number, regex);
}
// 日期校验(YYYY-MM-DD 格式)
bool validateDate(const std::string& date) {
std::regex regex("^((((1[6-9]|[2-9]\\d)\\d{2})(0[13578]|1[02])(0[1-9]|[12]\\d|3[01]))|(((1[6-9]|[2-9]\\d)\\d{2})(0[13456789]|1[012])(0[1-9]|[12]\\d|30))|(((1[6-9]|[2-9]\\d)\\d{2})02(0[1-9]|1\\d|2[0-8]))|((((1[6-9]|[2-9]\\d)(0[48]|[2468][048]|[13579][26]))|((16|[2468][048]|[3579][26])00))0229))$");
return std::regex_match(date, regex);
}
// 车牌号校验
bool validateLicensePlate(const std::string& licensePlate) {
std::regex regex("^[京津沪渝冀豫云辽黑湘皖鲁新苏浙赣鄂桂甘晋蒙陕吉闽贵粤青藏川宁琼使领A-Z]{1}[A-Z]{1}[A-Z0-9]{4}[A-Z0-9挂学警港澳]{1}$");
return std::regex_match(licensePlate, regex);
}
// 邮政编码校验
bool validatePostalCode(const std::string& postalCode) {
std::regex regex("^[1-9]\\d{5}$");
return std::regex_match(postalCode, regex);
}
// 中文姓名校验
bool validateChineseName(const std::string& name) {
std::regex regex("^[\\u4e00-\\u9fa5]{2,4}$");
return
前端JS实现
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>正则校验示例</title>
</head>
<body>
<script>
// 手机号校验
function validatePhoneNumber(phoneNumber) {
const regex = /^1[3456789]\d{9}$/;
return regex.test(phoneNumber);
}
// 邮箱校验
function validateEmail(email) {
const regex = /^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}$/;
return regex.test(email);
}
// 身份证号码校验(18 位)
function validateIDCard(idCard) {
const regex = /^[1-9]\d{5}(18|19|20)\d{2}(0[1-9]|1[0-2])(0[1-9]|[12]\d|3[01])\d{3}[0-9Xx]$/;
return regex.test(idCard);
}
// 密码强度校验(至少包含字母和数字,长度 8 到 20 位)
function validatePassword(password) {
const regex = /^(?=.*[a-zA-Z])(?=.*\d)[a-zA-Z\d]{8,20}$/;
return regex.test(password);
}
// URL 校验
function validateURL(url) {
const regex = /^(https?|ftp):\/\/([a-zA-Z0-9.-]+(\:[a-zA-Z0-9.&%$-]+)*@)*((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]?)|([a-zA-Z0-9-]+\.)*[a-zA-Z0-9-]+\.(com|edu|gov|int|mil|net|org|biz|arpa|info|name|pro|aero|coop|museum|[a-zA-Z]{2})(:\d+)?(\/($|[a-zA-Z0-9.,?'\\+&%$#=~_-]+))*$/;
return regex.test(url);
}
// 整数校验
function validateInteger(number) {
const regex = /^-?\d+$/;
return regex.test(number);
}
// 正整数校验
function validatePositiveInteger(number) {
const regex = /^[1-9]\d*$/;
return regex.test(number);
}
// 浮点数校验
function validateFloat(number) {
const regex = /^-?\d+(\.\d+)?$/;
return regex.test(number);
}
// 日期校验(YYYY-MM-DD 格式)
function validateDate(date) {
const regex = /^((((1[6-9]|[2-9]\d)\d{2})(0[13578]|1[02])(0[1-9]|[12]\d|3[01]))|(((1[6-9]|[2-9]\d)\d{2})(0[13456789]|1[012])(0[1-9]|[12]\d|30))|(((1[6-9]|[2-9]\d)\d{2})02(0[1-9]|1\d|2[0-8]))|((((1[6-9]|[2-9]\d)(0[48]|[2468][048]|[13579][26]))|((16|[2468][048]|[3579][26])00))0229))$/;
return regex.test(date);
}
// 车牌号校验
function validateLicensePlate(licensePlate) {
const regex = /^[京津沪渝冀豫云辽黑湘皖鲁新苏浙赣鄂桂甘晋蒙陕吉闽贵粤青藏川宁琼使领A-Z]{1}[A-Z]{1}[A-Z0-9]{4}[A-Z0-9挂学警港澳]{1}$/;
return regex.test(licensePlate);
}
// 邮政编码校验
function validatePostalCode(postalCode) {
const regex = /^[1-9]\d{5}$/;
return regex.test(postalCode);
}
// 中文姓名校验
function validateChineseName(name) {
const regex = /^[\u4e00-\u9fa5]{2,4}$/;
return regex.test(name);
}
// 英文单词校验
function validateEnglishWord(word) {
const regex = /^[a-zA-Z-]+$/;
return regex.test(word);
}
// IPv4 地址校验
function validateIPv4(ip) {
const regex = /^((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]?)$/;
return regex.test(ip);
}
// 银行卡号校验
function validateBankCard(bankCard) {
const regex = /^\d{16,19}$/;
return regex.test(bankCard);
}
// 示例测试
console.log(validatePhoneNumber("13800138000"));
console.log(validateEmail("test@example.com"));
</script>
</body>
</html>
代码说明:
在上述代码中,定义了一系列的校验函数,每个函数接收一个待校验的字符串作为参数,然后使用正则表达式的 test
方法对该字符串进行校验,test
方法会返回一个布尔值,表示该字符串是否匹配正则表达式。
你可以将上述代码保存为一个 HTML 文件,在浏览器中打开,然后在浏览器的开发者工具控制台中查看校验结果。同时,你也可以根据实际需求将这些校验函数应用到表单验证等前端交互场景中。