正则表达式在web应用中很普遍,网上成型的函数不少,此处列出ZBLOG内置的正则表达式检测函数,方便使用。
ASP版本的
'*********************************************************
' 目的: 检查正则式
' 输入: id
' 返回: 成功为True
'*********************************************************
Function CheckRegExp(source,para)
If para="[username]" Then
para="^[\.\_A-Za-z0-9\u4e00-\u9fa5]+$"
End If
If para="[password]" Then
para="^[A-Za-z0-9`~!@#\$%\^&\*\-_]+$"
End If
If para="[email]" Then
para="^([0-9a-zA-Z]([-.\w]*[0-9a-zA-Z])*@([0-9a-zA-Z][-\w]*\.)+[a-zA-Z]*)$"
End If
If para="[homepage]" Then
para="^[a-zA-Z]+://[a-zA-Z0-9\_\-\.\&\?/:=#\u4e00-\u9fa5]+?/*$"
End If
If para="[nojapan]" Then
para="[\u3040-\u30ff]+"
End If
If para="[guid]" Then
para="^\w{8}\-\w{4}\-\w{4}\-\w{4}\-\w{12}$"
End If
Dim re
Set re = New RegExp
re.Global = True
re.Pattern = para
re.IgnoreCase = False
CheckRegExp = re.Test(source)
End Function
'*********************************************************下面是PHP版本的:
/**
* 验证字符串是否符合正则表达式
* @param string $source 字符串
* @param string $para 正则表达式,可用[username]|[password]|[email]|[homepage]或自定义表达式
* @return bool
*/
function CheckRegExp($source, $para) {
if (strpos($para, '[username]') !== false) {
$para = "/^[\.\_A-Za-z0-9·\x{4e00}-\x{9fa5}]+$/u";
}
if (strpos($para, '[password]') !== false) {
$para = "/^[A-Za-z0-9`~!@#\$%\^&\*\-_]+$/u";
}
if (strpos($para, '[email]') !== false) {
$para = "/^([0-9a-zA-Z]([-.\w]*[0-9a-zA-Z])*@([0-9a-zA-Z][-\w]*\.)+[a-zA-Z]*)$/u";
}
if (strpos($para, '[homepage]') !== false) {
$para = "/^[a-zA-Z]+:\/\/[a-zA-Z0-9\_\-\.\&\?\/:=#\x{4e00}-\x{9fa5}]+$/u";
}
if (!$para)
return false;
return (bool)preg_match($para, $source);
}这个故事告诉我们ASP对日文很敏感。
转载请注明:鸟儿博客 » ZBLOG内置的正则表达式检测函数