2

我正在用 javaScript 创建一个应用程序,但我对 RegExp 有点困惑。我需要让用户输入 textArea 所需的字符串形式并让应用程序使用它,所以我需要限制 textArea 输入。

我需要这样的字段: 760、8,20、50/3、10,160/40、3001

逗号后有可选空格,项目数可选,其中一些可以选择后缀(*/1...)

我也希望有类似的模式,其行为类似,但可能有这样的前缀:

英石。760,圣。8,st.20,圣。50/3,圣。10,圣。160/40,圣。3001

还带有可选空格。如果有人可以帮助我制作这个正则表达式,我会非常高兴,因为我是创建这个的真正初学者......

我尝试了以下正则表达式((\d+)|((\d+)/(\d+))),(\s?)

提前致谢!

4

3 回答 3

1

我会使用这样的东西:

^\d+(/\d+)?(\s*,\s*\d+(/\d+)?)*$

然后,对于第二个:

^(st\.\s*)?\d+(/\d+)?(\s*,\s*(st\.\s*)?\d+(/\d+)?)*$

请记住,任何时候您都可以使用转义序列,这将使您的正则表达式更加清晰。因此,不要使用 [0-9],而是使用 \d,并且还使用 \s 来接受各种空格(空格、制表符等)。

于 2013-07-29T11:05:56.220 回答
1

我认为

^([ ]*[0-9]+(/[0-9]+)?[ ]*\,)*([ ]*[0-9]+(/[0-9]+)?[ ]*)$

^([ ]*(st\. )?[0-9]+(/[0-9]+)?[ ]*\,)*([ ]*(st\. )?[0-9]+(/[0-9]+)?[ ]*)$

听起来差不多

于 2013-07-29T09:51:30.357 回答
0

我希望它可以帮助你:

要选择您的领域:

    ([0-9]+/[0-9]+[,]{0,1})|([0-9]+[,]{0,1}) 

要替换它们:

    st\.\ &1&2 

通过使用 sed 命令行:

    sed -e "s/([0-9]+/[0-9]+[,]{0,1})|([0-9]+[,]{0,1})/st\.\ &1&2/g"
于 2013-07-29T10:01:21.077 回答