使用正则表达式创建搜索按钮

时间:2014-04-04 08:56:36

标签: c# regex search

所以我基本上是想创建一个搜索按钮。

此搜索正在使用REGEX。

我认为我说得对,但它不起作用,有人可以告诉我出错的方式/地点,不用年龄编码......

    public void SearchFunction(string searchtext)
    {
        SupporterId();
        ReferenceNumber();
        ConsignmentNumber();
    }
    private static void SupporterId()
    {
        const string sId= "";
        var supporterId = Regex.IsMatch(sId, @"^[A-F,S,R][0-9]{3,6}$", RegexOptions.IgnoreCase);
    }

    private static void ReferenceNumber()
    {
        const string refNumber = "";
        var referenceNumber = Regex.IsMatch(refNumber, @"^[ABN158][0-9]{6,17}$", RegexOptions.IgnoreCase);
    }

    private static void ConsignmentNumber()
    {
        const string conNumber = "";
        var consignmentNumber = Regex.IsMatch(conNumber, @"&[0-9]{14}$", RegexOptions.IgnoreCase);
        }
    }
}

这些是我的正则表达式,这是我背后的代码..

    protected void CheckStateClick(object sender, EventArgs e)
    {

        ConsignmentSearch();
    }

    private void ConsignmentSearch()
    {
        var searchclass = new RegexMethods();
        searchclass.SearchFunction(txtReferenceNumber.Text);
    }

任何人都可以告诉我我哪里出错了,我怎么能解决它,请不要告诉我哦你错过了这个然后不要告诉我如何解决它。

如果你能告诉我如何/需要添加修复的例子:在这里添加这行代码....< >

请,谢谢你。

__ 这就是错误 测试'M:DeliveryInputSystem.Default.AddBox_Click(System.Object,System.EventArgs)'失败:对象引用未设置为对象的实例。     System.NullReferenceException:未将对象引用设置为对象的实例。     Default.aspx.cs(113,0):在DeliveryInputSystem.Default.AddBox_Click(Object sender,EventArgs e)

2 个答案:

答案 0 :(得分:0)

我可能错了,但看起来你只是检查空字符串...... 如何检查您的搜索文本:

public void SearchFunction(string searchtext)
{
    SupporterId(searchtext);
    ReferenceNumber(searchtext);
    ConsignmentNumber(searchtext);
}
private static void SupporterId(string sId)
{
    var supporterId = Regex.IsMatch(sId, @"^[A-F,S,R][0-9]{3,6}$", RegexOptions.IgnoreCase);
}

private static void ReferenceNumber(string refNumber)
{
    var referenceNumber = Regex.IsMatch(refNumber, @"^[ABN158][0-9]{6,17}$", RegexOptions.IgnoreCase);
}

private static void ConsignmentNumber(string conNumber)
{
    var consignmentNumber = Regex.IsMatch(conNumber, @"&[0-9]{14}$", RegexOptions.IgnoreCase);  
}

但是,如果我正确理解您的代码,您的searchtext变量只包含txtReferenceNumber.Text文本,因此您只应在其上运行ReferenceNumber(字符串搜索文本)方法。

答案 1 :(得分:0)

您提供了错误文字:

__ THIS IS THE ERROR Test' 
M:DeliveryInputSystem.Default.AddBox_Click(System.Object,System.EventArgs)' failed:
Object reference not set to an instance of an object.
System.NullReferenceException:
Object reference not set to an instance of an object.
Default.aspx.cs(113,0): at DeliveryInputSystem.Default.AddBox_Click(Object sender, EventArgs e)

有书面错误原因:NullReferenceException以及它出现在哪里Default.aspx.cs(113,0)。您需要在113中的Default.aspx.cs行中分析其中的内容,以及为什么会导致NullReferenceException

如果您不知道从哪里开始,请从文档开始。根据{{​​3}}:

  

当您尝试访问值为null的类型的成员时,抛出NullReferenceException异常。

你经常有一个例子:

1:  List<String> names;
2:  if (sth) names = new List<String>();
3:  names.Add("Major Major Major")

如果sthfalse,则不会为names分配任何实例,并且会抛出异常。