ZBLOG内置的正则表达式检测函数

ZBLOG教程 十五楼的鸟儿 1147浏览 1评论

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

游客
发表我的评论 换个身份
取消评论

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址

网友最新评论 (1)

  1. 访客
    asp是对日本敏感的一个国家,也许asp也看A*V呢
    天兴工作室 游客 3年前 (2014-12-02)回复

等待大佬打赏中~