返回

正则表达式教程:验证户口簿

正则表达式

一、正则解释

户口簿号码验证正则表达式:

/(^\d{15}$)|(^\d{18}$)|(^\d{17}(\d|X|x)$)/

该正则表达式使用以下语法:

  • ^: 匹配字符串的开始。
  • $: 匹配字符串的末尾。
  • \d: 匹配数字。
  • {15}: 匹配 15 位数字。
  • {18}: 匹配 18 位数字。
  • {17}: 匹配 17 位数字。
  • (\d|X|x): 匹配数字、大写或小写 X。

正则表达式匹配以下三种类型的户口簿号码:

  • 15 位纯数字。
  • 18 位纯数字。
  • 17 位数字加上大写或小写 X。

二、使用场景

该正则表达式可用于以下场景:

  • 验证户口簿号码的合法性。
  • 从文本中提取户口簿号码。
  • 对户口簿号码进行数据清理。

三、代码示例

JavaScript

function validateHouseholdBookNumber(number) {
  const regex = /(^\d{15}$)|(^\d{18}$)|(^\d{17}(\d|X|x)$)/;
  return regex.test(number);
}

Java

import java.util.regex.Pattern;

public class HouseholdBookNumberValidator {
  private static final Pattern PATTERN = Pattern.compile(
    "^(\\d{15}$)|(\\d{18}$)|(\\d{17}(\\d|X|x)$)"
  );

  public static boolean validate(String number) {
    return PATTERN.matcher(number).matches();
  }
}

PHP

function validateHouseholdBookNumber($number) {
  $pattern = "/(^\\d{15}$)|(^\\d{18}$)|(^\\d{17}(\\d|X|x)$)/";
  return preg_match($pattern, $number);
}

Python

import re

def validate_household_book_number(number):
  pattern = r"^(\\d{15}$)|(\\d{18}$)|(\\d{17}(\\d|X|x)$)"
  return bool(re.match(pattern, number))

结论

该正则表达式提供了一种有效且可靠的方法来验证户口簿号码。通过使用本教程提供的代码示例,您可以在各种编程语言中轻松实现该验证。