将字符串与特定模式匹配

时间:2015-05-21 03:57:48

标签: vb.net

我希望我的程序检查特定模式的用户输入。我已经指出在它旁边使用一个标签,这个特定的TextBox1必须采用这种格式“XX / XX”(其中XX必须是数字,并且可以包含无限制的字符)。

然而,没有编码方检查以检查用户输入。目前我在互联网上搜索的解决方案正在使用

<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<table width="652" border="0" cellpadding="5" cellspacing="0">
  <tr>
    <td><strong>Product</strong></td>
    <td><strong>Product Price</strong></td>
    <td><strong>How much you want?</strong></td>
    <td><strong>Total Price</strong></td>
  </tr>
  <tr>
    <td width="210">Fruit:</td>
    <td width="216">$ 10</td>
    <td width="204"><input name="number" type="number" id="number" value="5" onchange="updatePrice()"></td>
    <td width="204">$ 50 <span id="num-fruits">0</span> </td>
  </tr>
  <tr>
    <td>Drinks:</td>
    <td>$ 25</td>
    <td><input name="number2" type="number" id="number2" value="25"></td>
    <td>$ 625</td>
  </tr>
  <tr>
    <td>Cards:</td>
    <td>$ 5</td>
    <td><input type="number" name="number3" id="number3"></td>
    <td>&nbsp;</td>
  </tr>
  <tr>
    <td>&nbsp;</td>
    <td>&nbsp;</td>
    <td>&nbsp;</td>
    <td>&nbsp;</td>
  </tr>
  <tr>
    <td>&nbsp;</td>
    <td>&nbsp;</td>
    <td>Total price of all:</td>
    <td>$ 675</td>
  </tr>
  <tr>
    <td>&nbsp;</td>
    <td>&nbsp;</td>
    <td>&nbsp;</td>
    <td>&nbsp;</td>
  </tr>
  <tr>
    <td>&nbsp;</td>
    <td>&nbsp;</td>
    <td>&nbsp;</td>
    <td>&nbsp;</td>
  </tr>
</table>
</center>
</body>
</html>

唯一的问题是它只接受一位数字。例如5/4,我想要的是动态输入,例如123/1或9/12或999999/30000。提前谢谢。

2 个答案:

答案 0 :(得分:0)

你快到了,

sMatch = TextBox1.Text Like "\d{1,}/\d{1,}"

sMatch = TextBox1.Text Like "[0-9]{1,}/[0-9]{1,}"

好的参考来自:https://msdn.microsoft.com/en-us/library/az24scfc(v=vs.110).aspx

\ d匹配任何十进制数字 {n,}匹配前一个元素至少n次

答案 1 :(得分:0)

我认为在这种情况下使用Masked Text boxes会更好。

或者你也可以尝试这个

Sub Main()
    Dim regex As Regex = New Regex("[0-9][0-9]/[0-9][0-9]")
    Dim match As Match = regex.Match("x1/1x2")
    If match.Success Then
        Console.WriteLine(match.Value)
    Else
        Console.WriteLine("Does not match")
    End If
    Console.ReadKey()
End Sub