2017-04-07 484 views
-3

我有一个任务,用户应该能够编辑地址字段的第一行,但他们应该只能使用一个逗号,但可以将该逗号放在任何地方字符串。正则表达式允许数字和数字,但只有一个逗号

我想知道是否有这种方式可以在JavaScript中完成?

到目前为止,我曾尝试:

^[a-zA-Z0-9\&\-\,\.\/\'_ ]+$ 

但这正则表达式让我进入多个逗号。

所以我想正则表达式,以使用户能够做到这一点:

21,塔什广场N13 2IJ

或本: ,塔什广场21 N13 2IJ

但不是这样的:

21,塔什广场,N13,2IJ

任何帮助,将不胜感激

+3

是的,可能。你有没有尝试过自己的东西? –

+0

你试过了吗? –

+0

是的,有... – revo

回答

1

您可以使用

​​

regex demo

这里,

  • ^ - 串的开始相匹配,
  • [-a-zA-Z0-9&.\/'_ ]* - 比赛0+字母,数字或符号-./'_,然后
  • (?:,[-a-zA-Z0-9&.\/'_ ]*)? - 任选的序列(1或0次)作者:
    • , - 一个逗号(因此,只允许一个)
    • [-a-zA-Z0-9&.\/'_ ]* - 比赛0+字母,数字或符号-./'_,然后
  • $ - 字符串的结尾。

另一种方式是一个(?!(?:[^,]*,){2})负向前查找添加到您的正则表达式:

/^(?!(?:[^,]*,){2})[-a-zA-Z0-9&.\/',_ ]+$/ 
    ^^^^^^^^^^^^^^^^^ 

another regex demo

如果有0+的比其他字符2个序列(?!(?:[^,]*,){2})先行将失败的比赛,,然后在字符串中输入,

+1

这工作。谢谢 – Cory

相关问题