我有几个组成CustomerInfo Object的字符串。我想编写一个验证每个字符串的函数。
例如,我有以下值存储为字符串: 公寓号码 街 市 名称 电话 电子邮件
服务器接收每个服务器,并将它们存储在数据库中。但是,在我这样做之前,我想验证带有这些值的字符串变量的内容。
我是PHP和服务器端编程的新手。我想知道什么是一些好的,但简单的策略来实现这一目标。 有人可以指点我一些想法和链接。
由于
答案 0 :(得分:5)
这是正则表达式有用的地方。见preg_match。您可能希望在正则表达式上阅读此tutorial :)当您熟悉它们时请记住,不能做所有事情。他们只能解析常规语言。有时人们会被带走,并试图用正则表达式做太多,所以这只是一个警告。这是一个简单的示例用法:
if(!preg_match('/^[\w.%+-]+@[\w.-]+\.[A-Z]{2,5}$/i', $email)){
// Email is unvalid.
// Handle it here
}
模式/^[\w.%+-]+@[\w.-]+\.[A-Z]{2,5}$/i
可以分解为:
/ - >分隔符,可以使用任何字符。
^ - >字符串的开头
[\ w。%+ - ] + - >集合中的一个或多个(+)字符[\ w。%+ - ]允许单词字符(字母和下划线)和任何符号'。%+ - '
@ - >一个@符号
[\ w .-] + - >一个或多个单词字符点或连字符
\。 - >单点
[A-Z] {2,5} - > 2-5大写字母
$ - >字符串结尾
/ - >结束分隔符(正则表达式结束)
i - >不区分大小写的修饰符(这意味着之前我有A-Z的地方现在也匹配a-z
答案 1 :(得分:1)
在php中,您可以使用preg_match
检查字符串regular expressions。如果你想使用这些但你不熟悉正则表达式,你可以查看这个simple tutorial,或者你可以在online regular expression database 中搜索一个好的正则表达式(这个例子显示了正则表达式)用于email pattern checking)。
答案 2 :(得分:0)
您可以使用内置的PHP过滤器来执行标准验证:
http://php.net/manual/en/function.filter-var.php http://php.net/manual/en/filter.filters.validate.php
// Example:
if (filter_var($email_input, FILTER_VALIDATE_EMAIL) !== false) {
// Invalid e-mail!
}
请注意,这仅适用于PHP 5.2 +