4

我想要 Javascript 中的以下内容

if str.charAt(index) (在集合中) {".", ",", "#", "$", ";", ":"}

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

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

这行得通,但必须有更好的方法。

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

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

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

2 回答 2

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. */
}
于 2014-01-27T15:01:16.597 回答
2

您可以使用正则表达式来做到这一点:

var theChar = str.charAt(i);
if (/[.,#$;:]/.test(theChar)) {
  // ...
}
于 2014-01-27T15:01:08.030 回答