构建一个接受字符的函数表达式,当字符为,时返回true。 ! ;否则返回false

时间:2019-07-17 04:59:09

标签: javascript

我在构造接受单个字符的函数表达式时遇到困难。当字符为。 ; !该声明将为真。如果该字符不是所列的4个字符,则应返回false。

我尝试了下面列出的代码的许多不同变体。问题是,只要字符串中有任何字符组合,该函数都将返回true。例如,当我运行isPunct(“ a”)时,这些函数返回true。实际上,只有在,时,它才应返回true。 !要么 ;输入。

UserControl

我希望在以下情况下返回true: 。 , 要么 !输入 但是,我可以在字符串中输入任何内容,并且返回true。

GridCell返回true。

此外,如果这个问题措辞不好,我只学习了3周的Java语言,对此我表示歉意。

3 个答案:

答案 0 :(得分:1)

要构造与一组字符中的任何一个匹配的正则表达式,请使用字符集的语法,例如

[abc]

匹配abc

此外,要将正则表达式与字符串匹配,请使用.test.match

const isPunct = char => /[,.!;]/.test(char);

console.log(
  isPunct('.'),
  isPunct('a')
);

答案 1 :(得分:1)

您需要更改if条件。使用punctList,您尝试创建一个正则表达式。

为了使其与您的字符串匹配,您需要使用.match.test。如果您的字符串与正则表达式匹配,则返回True,否则返回False

if (ch.match(punctList))

因此该函数可以更改为以下内容,因为从技术上讲,您不需要If条件

let isPunct = function(ch) {
    let punctList = /,.;!/;
    return ch.match(punctList);
};

答案 2 :(得分:1)

let isPunct = function(ch) {

     return "/,.;!/".indexOf(ch) > -1;
  };