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

Javascript - Regex for letters,numbers,underscore comma-seperated tags

本文关键字:分隔 下划线 标签 正则表达式 用于 Javascript 数字      更新时间:2023-09-26

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

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

每个标签由单个逗号分隔(例如"word1,word2,word_3,_word_4",但不是"word1,,word2,word_3,_word_4(和任何其他符号无效(如;!"(@#%^&*()-+=.>

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

某物1,something_2,something_something,某物这些将是无效标签:

something1%,something%2^,!something%_&something,(*(something@+

它还应该能够只接受单个标签,也可以接受多个标签!!

谢谢。

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

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

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

^表示字符串的开头,因此没有其他(可能无效的(字符可以位于它前面。在 [] 之间是一个字符类:指定后面可以跟哪些字符。 例如,[ABC]表示 A、B 或 C。您还可以指定范围,例如 [A-E] ,这意味着 A、B、C、D 或 E。

在上面的正则表达式中,我指定了范围azAZ(大写(、09 和单字符_+意味着字符、组或字符在其前面的字符类中必须至少出现一次或多次。

()组合是正则表达式的一部分。在这种情况下,他们将,(对于您想要的逗号分隔列表(和到目前为止表达式的重复进行分组。*意味着(如+(它前面的组可能出现很多次,但不同之处在于*使其成为可选的。

所以,简而言之:此表达式允许由 a-z、A-Z0-9 或字符 _ 范围内的至少一个或多个字符组成的标签,可选后跟更多以 , 开头的标签,指定逗号分隔列表的要求:)

单个标签将匹配

[a-zA-Z0-9_]+

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

'w+

如果你知道你的RE引擎不会处理Unicode(JavaScript就是这种情况(。不过,我现在将继续'w+

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

'w+(,'w+)*

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

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