将输入限制为某种模式

时间:2013-07-29 09:45:21

标签: javascript regex

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

我需要像这样: 760,8,20,50 / 3,10,160 / 40,3001

带逗号后的可选空格,以及可选的项目数,其中一些可以选项带有sufix(* / 1 ...)

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

ST。 760,ST。 8,st.20,st。 50/3,st。 10,st。 160/40,st。 3001

还有可选空格。如果有人可以帮我制作这个regExp,我会很高兴,因为我是创建这个的真正的乞丐......

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

提前致谢!

3 个答案:

答案 0 :(得分:1)

我认为

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

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

关于正确的声音

答案 1 :(得分:1)

我会用这样的东西:

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

然后,对于第二个:

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

请记住,任何时候你都可以使用转义序列,这将使你的正则表达式更加清晰。所以,不要使用[0-9],而是使用\ d,并使用\ s接受所有类型的空格(空格,制表符等)。

答案 2 :(得分: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"