函数compress()将接受一个句子并返回一个字符串,其中所有空格和标点符号都将被删除。此函数必须调用isWhiteSpace()isPunct()

我已经完成了要调用的函数,但是我不知道我的js代码中缺少什么来使其调用函数。

function compress(sent) {
    var punc = "; : . , ? ! - '' "" () {}";
    var space = " ";
    if (punc.test(param)) {
        return true
    } else {
        return false
    }
    if (space.test(param)) {
        return true
    } else {
        return false
    }
    isWhiteSpace(x);
    isPunct(x);
}

最佳答案

此函数必须调用isWhiteSpace()和isPunct()。


因此,您已经具有两个函数,当传递的字符为空格或标点符号时,我假定它们返回true。然后,您不需要也不应通过在代码中实现用于空格和标点的重复的基于正则表达式的文本来重复此功能。保持干燥-不要重复自己。

基于这两个函数的compress函数如下所示:


function isWhiteSpace(char) {
  return " \t\n".includes(char);
}

function isPunct(char) {
  return ";:.,?!-'\"(){}".includes(char);
}

function compress(string) {
    return string
      .split("")
      .filter(char => !isWhiteSpace(char) && !isPunct(char))
      .join("");
}

console.log(compress("Hi! How are you?"));





我同意正则表达式测试可能是现实世界中的首选选择:

function compress(string) {
  return string.match(/\w/g).join("");
}


但是,您专门要求提供一种调用isWhiteSpaceisPunct的解决方案。

关于javascript - 从字符串中删除标点符号和空格,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/44123869/

10-16 21:06