javascript - 从字符串中删除标点符号和空格

标签 javascript

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);
}

最佳答案

This function must call isWhiteSpace() and 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/

相关文章:

javascript - AngularJS 将数据从服务返回到 View

javascript - 当关闭屏幕菜单打开时,基础使箭头与其他类切换

javascript - 如何让promise.response返回API的响应?

javascript - 如何将谷歌自动完成地点限制为N个国家?

javascript - 在 vue.js 中按类型对评论进行排序

javascript - 在焦点上显示和隐藏不同的元素

javascript - Ionic2 - 根据 Controller 的显示方式显示/隐藏按钮

javascript - 如何在其他条件下应用 Haversine Formula?

javascript - Express、http-proxy-middleware 和 net::ERR_CONNECTION_REFUSED

javascript - 如何将一个数组拆分为另一个配对数组