正则表达式在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内置的正则表达式检测函数