Javascript 仅包含某些字母的逗号分隔字符串的正则表达式

Javascript 仅包含某些字母的逗号分隔字符串的正则表达式,javascript,regex,Javascript,Regex,正在创建测试此模式的javascript正则表达式:a、b、c等。。用某些字母 换句话说,用逗号分隔的字母,逗号后有空格。需要至少有一个字母才能通过测试,但之后可以有无限数量的字母 到目前为止,我有: /[cdefgab]+(, [cdefgab]+)*/ 但是我很难让它像上面描述的那样工作 /[a-z](, [a-z])*/ 这至少需要一个字母,然后可以有任意数量的字母(0或更多)前面加逗号和空格 编辑:如果您只查找特定的字母,请将[a-z]的实例替换为方括号中包含的您要查找的字母。i、

正在创建测试此模式的javascript正则表达式:
a、b、c等。。用某些字母

换句话说,用逗号分隔的字母,逗号后有空格。需要至少有一个字母才能通过测试,但之后可以有无限数量的字母

到目前为止,我有:

/[cdefgab]+(, [cdefgab]+)*/
但是我很难让它像上面描述的那样工作

/[a-z](, [a-z])*/
这至少需要一个字母,然后可以有任意数量的字母(0或更多)前面加逗号和空格


编辑:如果您只查找特定的字母,请将
[a-z]
的实例替换为方括号中包含的您要查找的字母。i、 e.
[cefg]

如果需要用逗号和空格分隔字母序列,则应使用此正则表达式:

/[cdefgab](, [cdefgab])*/
在正则表达式中,如果只有一个字母,就不需要
+
量词

这是

编辑:

如果它的意思是正好匹配一个字母一个用逗号分隔的字母序列,那么您需要使用{1}来正好匹配一次,您的正则表达式应该如下所示:

/[cdefgab]{1}(, [cdefgab])*/
EDIT2:

要精确匹配所需的字符序列并相应地启用/禁用submit按钮,您应将此正则表达式
/^[cdefgab]{1}(,[cdefgab])*$/)
与输入的键控事件一起使用,此示例:

var validateInput=函数validateInput(输入){
var submitButton=document.getElementById(“submitButton”);
if(input.value.match(/^[cdefgab]{1}(,[cdefgab])*$/){
控制台日志(“匹配”);
submitButton.disabled=假;
}否则{
控制台日志(“不匹配”);
submitButton.disabled=“disabled”;
}
}
文本:

太好了。我按照你的建议做了,但当我写了一封信,然后又写了一个句号或破折号时,它还是过去了。它只需要逗号,后面有空格。我遗漏了什么?支架内不需要管道!更新,谢谢@chsdk@Stack Juice 2,你能给出一个字符串示例吗?如果要排除字符,则会变得更加困难,因为正则表达式的开头(
[a-z]
)在技术上会“传递”包含字母的任何字符串。好的,但我需要做的是不允许提交表单,除非它与此完全匹配。看起来,一旦我正确启动序列,然后放置一个它仍然通过的数字。是否应该发生这种情况?@StackJuice不应该发生,请编辑问题以包含验证所需的全部代码?我想你差不多已经有了。假设我以大写字母“C”开始,按钮被禁用,这正是我想要的,但只要我输入小写字母“a”,它就会被禁用。我需要禁用它,除非它完全匹配。这有帮助吗?@StackJuice2看看我上次的编辑,它会给你你需要的。