首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Axapta验证类

Axapta验证类
EN

Stack Overflow用户
提问于 2009-11-16 17:36:32
回答 2查看 1.5K关注 0票数 1

我编写了一个在AX2009中处理regex验证的方法。问题是它总是返回false,不管表达式或输入字符串是什么。返回没有错误,只是‘假’的想法,看看?我可能错过了一些简单的东西。

这篇文章已经更新到包含了修正的方法,没有错误,所以您可以剪切和粘贴代码,以便在您的项目中使用。符合BP标准,可随时使用。-享受

代码语言:javascript
复制
static boolean validateMe(str regexFilter, str _testString)
{
    System.Text.RegularExpressions.Match regExMatch;
    boolean retVal;
    str regExpression;
    ;

    //See if any of the static expressions were selected
    switch (regexFilter)
    {
        case 'integer' :
            regExpression = '^\\d+$';
            break;
        case 'rgbcolor' :
            regExpression = '^([01]?\\d\\d?|2[0-4]\\d|25[0-5])\\,([01]?\\d\\d?|2[0-4]\\d|25[0-5])\\,([01]?\\d\\d?|2[0-4]\\d|25[0-5])$';
            break;
        case 'number' :
            regExpression = '^(\\d+\\.?\\d*|\\d*\\.?\\d+)$';
            break;
        case 'email' :
            regExpression = '^([\\w-\\.]+)@((\\[[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\.)|(([\\w-]+\\.)+))([a-zA-Z]{2,4}|[0-9]{1,3})(\\]?)$';
            break;
        case 'phone' :
            regExpression = '^(\\()?(\\d{3})(\\)|-)?([0-9]{3})(-)?([0-9]{4}|[0-9]{4})$';
            break;
        case 'nopunctationphone' :
            regExpression = '^\\d{10}$';
            break;
        default :
            //No static expression matched, use the passed-in value
            regExpression = regexFilter;
    }

    //see if the string matches
    if (_testString != '')
    {
        //see if string matches expression; validation is good
        regExMatch = System.Text.RegularExpressions.Regex::Match(_testString, regExpression);
        retVal = regExMatch.get_Success();
    }
    else
    {
        //string does NOT match expression; validation fails
        retVal = false;
    }

    return retVal;
}
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2009-11-18 15:14:10

您已经交换了应该是的变量:

代码语言:javascript
复制
regEx = new System.Text.RegularExpressions.Regex(regExpression);
票数 2
EN

Stack Overflow用户

发布于 2009-11-16 20:29:06

是因为你需要避开字符串中的反斜杠吗?

代码语言:javascript
复制
regExpression = '^\\d*$';

等。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/1743681

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档