javascript 正则表达式 候选
在 JavaScript 中,正则表达式是一种强大的工具,用于匹配字符串中的特定模式。以下是一些常见的正则表达式候选及其用途:
### 1. 匹配电子邮件地址
```javascript
const emailRegex = /^[^\\s@]+@[^\\s@]+\\.[^\\s@]+$/;
```
- **用途**:验证电子邮件地址是否符合标准格式。
### 2. 匹配 URL
```javascript
const urlRegex = /^(https?:\\/\\/)?([\\da-z\\.-]+)\\.([a-z\\.]{2,6})([\\/\\w \\.-]*)*\\/?$/;
```
- **用途**:验证 URL 是否符合标准格式。
### 3. 匹配电话号码
```javascript
const phoneRegex = /^\\+?[1-9]\\d{1,14}$/;
```
- **用途**:验证电话号码是否符合国际格式。
### 4. 匹配日期(YYYY-MM-DD 格式)
```javascript
const dateRegex = /^\\d{4}-\\d{2}-\\d{2}$/;
```
- **用途**:验证日期是否符合 `YYYY-MM-DD` 格式。
### 5. 匹配密码(至少包含一个大写字母、一个小写字母和一个数字)
```javascript
const passwordRegex = /^(?=.*[a-z])(?=.*[A-Z])(?=.*\\d)[a-zA-Z\\d]{8,}$/;
```
- **用途**:验证密码是否符合复杂性要求。
### 6. 匹配 IP 地址
```javascript
const ipRegex = /^((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 地址是否符合标准格式。
### 7. 匹配 HTML 标签
```javascript
const htmlTagRegex = /<[^>]+>/g;
```
- **用途**:提取或验证 HTML 标签。
### 8. 匹配十六进制颜色代码
```javascript
const hexColorRegex = /^#?([a-f\\d]{3}|[a-f\\d]{6})$/i;
```
- **用途**:验证十六进制颜色代码是否有效。
### 9. 匹配信用卡号(Luhn 算法验证)
```javascript
function validateCreditCard(cardNumber) {
const cardRegex = /^(?:4|5[1-5]|6(?:011|5\\d{2}))[0-9]{12}(?:[0-9]{3})?$/;
let sum = 0;
let shouldDouble = false;
for (let i = cardNumber.length - 1; i >= 0; i--) {
let digit = parseInt(cardNumber.charAt(i), 10);
if (shouldDouble) {
digit *= 2;
if (digit > 9) {
digit -= 9;
}
}
sum += digit;
shouldDouble = !shouldDouble;
}
return cardRegex.test(cardNumber) && (sum % 10 === 0);
}
```
- **用途**:验证信用卡号是否有效(使用 Luhn 算法)。
### 10. 匹配中文字符
```javascript
const chineseCharRegex = /[\\u4e00-\\u9fa5]/;
```
- **用途**:匹配中文字符。
### 11. 匹配空格
```javascript
const spaceRegex = /\\s+/g;
```
- **用途**:匹配一个或多个空白字符。
### 12. 匹配 Base64 编码
```javascript
const base64Regex = /^(?:[A-Za-z0-9+/]{4})*(?:[A-Za-z0-9+/]{2}==|[A-Za-z0-9+/]{3}=)?$/;
```
- **用途**:验证 Base64 编码是否有效。
### 13. 匹配 GUID
```javascript
const guidRegex = /^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$/;
```
- **用途**:验证 GUID 是否符合标准格式。
### 14. 匹配银行卡号(16 或 19 位数字)
```javascript
const bankCardRegex = /^(?:\\d{16}|\\d{19})$/;
```
- **用途**:验证银行卡号是否符合长度要求。
这些正则表达式可以根据具体需求进行调整和优化。如果需要更复杂的匹配规则,可以结合正则表达式的高级特性(如捕获组、非捕获组、前瞻等)。