如果charAt等于字符列表

时间:2014-01-27 14:57:41

标签: javascript charat

我想在Javascript中使用以下内容

如果str.charAt(index)(在集合中){“。”,“,”,“#”,“$”,“;”,“:”}

是的,我知道这一定很简单,但我似乎无法正确理解语法。我现在拥有的是

theChar = str.charAt(i);
if ((theChar === '.') || (theChar === ',') || (theChar === ... )) {
  // do stuff
}

这很有效,但必须有更好的方法。

编辑:我这样做了,但不确定它是否合适:

var punc = {
    ".":true,
    ",":true,
    ";":true,
    ":":true
};

if (punc[str.charAt[index]) { ...

2 个答案:

答案 0 :(得分:5)

使用这些字符定义一个数组,然后只需在数组中搜索。一种方法是:

var charsToSearch = [".", ",", "#", "$", ";", ":"];
var theChar = str.charAt(i); /* Wherever str and i comes from */

if (charsToSearch.indexOf(theChar) != -1) {
    /* Code here, the char has been found. */
}

答案 1 :(得分:2)

您可以使用正则表达式执行此操作:

var theChar = str.charAt(i);
if (/[.,#$;:]/.test(theChar)) {
  // ...
}