繁体   English   中英

Javascript - 用于字母,数字,下划线逗号分隔标签的正则表达式

[英]Javascript - Regex for letters,numbers,underscore comma-seperated tags

我是regex和javascript的新手,我想知道是否有人知道正则表达式将用于检测输入字段是否包含以下类型的格式:

至少一个不能包含空格的字母数字和下划线(_)标签(例如“test”和“test_”但不包括“test test”)

每个标记用单个逗号分隔(例如“word1,word2,word_3,_word_4”但不包含“word1,word2,word_3,_word_4)和其他任何符号无效(如;!”'@#%^&*( ) - + =>。

我的意思是这个例子,这些是有效的标签:

something1,something_2,something_something,something这些将是无效标签:

something1%,某事% 2 ^ ,!某事%_&某事,(*)某事@ +

它也应该只能接受一个标签,因为倍数标签也是如此!

谢谢。

假设您要接受大写和小写字符:

^[a-zA-Z0-9_]+(,[a-zA-Z0-9_]+)*$

提到的网站有关于正则表达式的很好的信息,我建议阅读它。 现在简短解释一下:

^表示字符串的开头,因此其前没有其他(可能无效的)字符。 []是一个字符类:指定可能跟随的字符。 [ABC]例如表示A,B或C.您还可以指定[AE]等范围,即A,B,C,D或E.

在上面的正则表达式中,我指定范围azAZ (大写), 09以及单个字符_ +表示前面的字符类中的字符,组或字符必须至少出现一次或多次。

()组正则表达式的一部分。 在这种情况下,他们组, (你想要的逗号分隔的列表)和表达的重复为止。 *表示它前面的组可能会出现多次(或+ ),但区别在于*使其成为可选项。

因此,简而言之:这个表达式允许标签由至少一个或多个字符的范围AZ,AZ,0-9或字符_ ,任选接着进行多个标签与一个开始, ,指定为一个逗号的要求分隔列表:)

单个标签将匹配

[a-zA-Z0-9_]+

这是一个包含大写和小写拉丁字母以及数字和下划线的字符类。 这通常可以缩短为

\w+

如果你知道你的RE引擎不会处理Unicode(这是JavaScript的情况)。 不过,我现在继续使用\\w+

您可以通过选择单个标记和可能为零的逗号 + 标记来匹配多个标记

\w+(,\w+)*

如果要验证完整的字符串,则应该在表达式周围放置字符串开头和字符串 结尾的锚点:

^\w+(,\w+)*$

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM