Javascript正则表达式允许任何以逗号分隔的字符

时间:2015-08-13 10:25:05

标签: javascript regex

在Javascript中,我需要正则表达式以允许在文本框中以逗号分隔的任何字符。

例:
 有效字符串是:

ie, ch, mz
en, fa, ta
/path/xyz  , /test/apps/            
msg_abc_chec.ts, ss_msg_abc_chec.ts     
com.app.fr, vi.dsx;gui     
909.33.33.12312:343234, 33.23.33     
800x480,    200x480, 1200x1060  , 400x160      
Main app, sub app       
SomeAudOut#1   ,  SomeVidIn#3

无效的字符串是:

ie,, ch, mz   - 2 commas without string
en, fa, ta,   - comma at the end
SomeAudOut#2  - no comma separated value         

2 个答案:

答案 0 :(得分:1)

您可以使用

/^(?:[^,\n]+,)+[^,\n]+$/gm

请参阅demo

  • ^ - 行首
  • (?:[^,\n]+,)+ - 1个或多个序列
    • [^,\n]+, - ,以外的1个或多个字符(和换行符,但仅适用于多行模式)和,
  • [^,\n]+ - 在多线模式下进行测试时,除了,\n之外还有一个或多个字符(再次,\n)。
  • $ - 行尾

如果您还要排除ie, ch, , , mz - 类似行,use this regex

^(?!.*,\s*,)(?:[^,\n]+,)+[^,\n]+$

此处,(?!.*,\s*,)会阻止具有2个用空格分隔的连续逗号的匹配行。

答案 1 :(得分:0)

它应该匹配:

var colorPickerWheel = $.farbtastic("#colorPickerWheel", {callback: pickerUpdate, width: 500, height: 500});

colorPickerWheel.setColor('#00ffff');

function pickerUpdate(color){
    console.log("Color Picker Wheel: " + color);
}