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

时间:2015-08-10 22:54:20

标签: javascript regex

正在创建一个测试此模式的javascript正则表达式:(swap! app-state update-in [:contacts] f elements of args) ..带有某些字母。

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

到目前为止,我有这个:

a, b, c, etc

但是如上所述让它无法正常工作。

2 个答案:

答案 0 :(得分:1)

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

/[cdefgab](, [cdefgab])*/

在你的正则表达式中,如果+量词只有一个字母,则不需要它。

这是 a DEMO

修改

如果它只是用一个字母来匹配一个用逗号分隔的字母序列,那么你需要使用{1}来完全出现一个,你的正则表达式应该是这样的这样:

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

<强> EDIT2:

为了完全匹配所需的字符序列并相应地启用/禁用提交按钮,您应该将此正则表达式/^[cdefgab]{1}(, [cdefgab])*$/)与输入的keyup事件一起使用,这是一个演示:

&#13;
&#13;
var validateInput = function validateInput(input) {
  var submitButton = document.getElementById("submitButton");
  if (input.value.match(/^[cdefgab]{1}(, [cdefgab])*$/)) {

    console.log("matches");
    submitButton.disabled = false;

  } else {

    console.log("Unmatches");
    submitButton.disabled = "disabled";
  }
}
&#13;
Text:
<input type="text" id="txt" onkeyup="validateInput(this);" />
<input type="submit" id="submitButton" disabled/>
&#13;
&#13;
&#13;

答案 1 :(得分:0)

/[a-z](, [a-z])*/

这至少需要一个字母,然后可以有任意数量的字母(0或更多),前面有逗号和空格。

编辑:如果您只是查找特定字母,请将[a-z]的实例替换为您要查找的字母括在方括号内。即[cefg]