php - 过滤数字 PIN 码字符串数组,格式可能为 "######"或 "### ###"

标签 php arrays regex filtering numeric

我有一个 PHP 字符串数组。这些字符串应该代表 6 位数字的 PIN 码,例如:

560095

前 3 位数字后有一个空格也被认为是有效的,例如560 095

并非所有数组元素都有效。我想过滤掉所有无效的 PIN 码。

最佳答案

是的,您可以为此使用正则表达式。

PHP 有一个名为 preg_grep 的函数您将正则表达式传递给它,它返回一个新数组,其中包含 input 数组中与模式匹配的条目。

$new_array = preg_grep('/^\d{3} ?\d{3}$/',$array);

正则表达式的解释:

^     - Start anchor
\d{3} - 3 digits. Same as [0-9][0-9][0-9]
 ?    - optional space (there is a space before ?)
        If you want to allow any number of any whitespace between the groups
        you can use \s* instead
\d{3} - 3 digits
$     - End anchor

关于php - 过滤数字 PIN 码字符串数组,格式可能为 "######"或 "### ###",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4428669/

相关文章:

php - 我们应该在网站的什么地方进行数据验证?

javascript - 面板不可拖动 - Jquery UI

C++:将二维数组传递给函数

JAVA计算各个星球的重量(初级)

regex - 如何去掉一个句子只保留字母、数字、空格

php白屏死机

php - 如何合并两个表中的两个选择?

我可以使用指针打印出 int 数组的数组,就像字符串数组一样吗?

php - 让 PHP 停止替换 $_GET 或 $_POST 数组中的 '.' 个字符?

javascript - 荷兰邮政编码的正则表达式