gpt4 book ai didi

c# - RegularExpressionValidator 用于在多行文本框中验证 IP(每行一个)的正则表达式?

转载 作者:行者123 更新时间:2023-11-30 23:26:15 25 4
gpt4 key购买 nike

我有一个多行文本框,它应该只接受 IP 地址(每行一个,没有分隔符)。

例如:

10.1.20.1
10.1.20.2

到目前为止,我使用以下带有 RegularExpressionValidator 的正则表达式来验证文本框,但只有在文本框的第一行输入单个 IP 地址时它才有效。

如果在文本框的第二行输入第二个 IP,则表达式验证失败并显示 RegularExpressionValidator 的错误消息。

我当前的RegularExpressionValidator如下,

<asp:RegularExpressionValidator runat="server" ErrorMessage="IP addresses (one per line) only please." ControlToValidate="TextBox1" ValidationExpression="\b(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)" />

我不只是在这里要求一个正确的正则表达式(尽可能有帮助),而是更多的解释,请让我自己创建一个工作的正则表达式。

最佳答案

看起来整个文本应该匹配正则表达式。您的正则表达式只匹配一个 IP 作为一个完整的词。您需要将\b替换为^并添加一个0+量化组匹配一个换行符+IP。

这是一个例子:

^  # Start of string
(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)[.](25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)[.](25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)
(?: # Optional - 0+ - group start
(?:\r\n|\r|\n) # linebreaks of various types
(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)[.](25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)[.](25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?) # 0+ lines having only IP
)* # Optional group end
$ # End of string

参见 the demo

关于c# - RegularExpressionValidator 用于在多行文本框中验证 IP(每行一个)的正则表达式?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36934321/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com