0

我一开始就承认我不喜欢并且并不真正理解正则表达式。我想检查单个字符ch是否是一组可接受的字符之一。我认为这应该有效,但它没有:

if (/aCcehIikmNnOoprSstxYy/.test(ch)) {

我究竟做错了什么?

谢谢。

4

2 回答 2

3

您需要将字符集包含在 [ ] 中:

if (/[aCcehIikmNnOoprSstxYy]/.test(ch)) {

没有它,您将尝试匹配整个字符串“aCcehIikmNnOoprSstxYy”。

于 2012-06-13T08:13:31.443 回答
2

我认为这可以在没有正则表达式的情况下解决:

var characters = "aCcehIikmNnOoprSstxYy";
var allowed    = characters.indexOf("C") != -1;

if (allowed) {
  // do something here
}

如果字符不在字符串中,则 String.indexOf() 返回 -1,否则返回正数。

于 2012-06-13T08:21:42.673 回答