【问题标题】:validating only selected characters in string php (phone number validation)仅验证字符串 php 中的选定字符(电话号码验证)
【发布时间】:2011-02-01 08:34:00
【问题描述】:
我有一个包含字母数字字符的字符串。
如果字符串仅包含 0-9、-、+ 或单词 NA,则脚本应返回 (echo) "true"(仅当不包含其他字符时才应验证 NA,并且应在以下情况下回显 false字符串包含任何其他字符以及“NA”),如果字符串包含指定字符以外的任何其他字符,则脚本应回显“false”。我怎样才能做到这一点??
提前谢谢.. :)
爆破
【问题讨论】:
标签:
php
string
validation
preg-match
【解决方案1】:
if(preg_match('/^(NA|[0-9+-]+)$/',$str)) {
echo "true\n";
} else {
echo "false\n";
}
【解决方案2】:
使用正则表达式非常简单:
$regExp = '/^(?:[0-9+-]+|NA)$/i';
echo preg_match($regExp, $string) ? 'true' : 'false';
但是:
- 您确定要确保字符串包含
0-9、- 和+?这将使以下有效数字:
- -9+9291---
- +2039-291919++0203-19293
- 如果您只想匹配
NA 而不是 nA、Na 和 na,请删除模式末尾的 i。
【解决方案3】:
$check1 = preg_match('/^[0-9]{1,}$/', $string);
$check2 = preg_match('/^NA$/', $string);