Javascript 从字符串中删除标点和空格

Javascript 从字符串中删除标点和空格,javascript,Javascript,函数compress将接受一个句子并返回一个字符串,其中删除了所有空格和标点符号。此函数必须调用isWhiteSpace和isPunct 我已经完成了要调用的函数,但是我不知道我的js代码中缺少了什么来让它调用函数 function compress(sent) { var punc = "; : . , ? ! - '' "" () {}"; var space = " "; if (punc.test(param)) { return true

函数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);
}
您可以利用它来设计ispunt函数

function isPunct(x) {
    // list of punctuation from the original question above
    var punc = ";:.,?!-'\"(){}";

    // if `x` is not found in `punc` this `x` is not punctuation
    if(punc.indexOf(x) === -1) {
        return false;
    } else {
        return true;
    }
}
解决isWhiteSpace更容易

function isWhiteSpace(x) {
    if(x === ' ') {
        return true;
    } else {
        return false;
    }
}
您可以将其与一个循环放在一起,该循环使用以下方法检查字符串中的每个字符:

您可以利用它来设计ispunt函数

function isPunct(x) {
    // list of punctuation from the original question above
    var punc = ";:.,?!-'\"(){}";

    // if `x` is not found in `punc` this `x` is not punctuation
    if(punc.indexOf(x) === -1) {
        return false;
    } else {
        return true;
    }
}
解决isWhiteSpace更容易

function isWhiteSpace(x) {
    if(x === ' ') {
        return true;
    } else {
        return false;
    }
}
您可以将其与一个循环放在一起,该循环使用以下方法检查字符串中的每个字符:


如果在函数中返回某些内容,则执行将停止

从我所看到的,你的函数不需要返回任何东西。。。所以你应该这么做

function compress(sent) { 
    var punc = ";:.,?!-'\"(){} ";
    var array = punc.split("");
    for (x = 0; x < array.length; x++) {
        sent = sent.replace(array[x], "");
    }
    isWhiteSpace(x); 
    isPunct(x);
    return sent;
}

如果在函数中返回某些内容,则执行将停止

从我所看到的,你的函数不需要返回任何东西。。。所以你应该这么做

function compress(sent) { 
    var punc = ";:.,?!-'\"(){} ";
    var array = punc.split("");
    for (x = 0; x < array.length; x++) {
        sent = sent.replace(array[x], "");
    }
    isWhiteSpace(x); 
    isPunct(x);
    return sent;
}
此函数必须调用isWhiteSpace和isPunct

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

基于这两个函数的压缩函数如下所示: 函数为whitespacechar{ 返回\t\n.includeChar; } 函数isPunctchar{ return;:,?!-'\{}.includeChar; } 函数压缩字符串{ 返回字符串 分裂 .filterchar=>!isWhiteSpacechar&&!isPunctchar 参加 } console.logcompressHi!你好吗 此函数必须调用isWhiteSpace和isPunct

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

基于这两个函数的压缩函数如下所示: 函数为whitespacechar{ 返回\t\n.includeChar; } 函数isPunctchar{ return;:,?!-'\{}.includeChar; } 函数压缩字符串{ 返回字符串 分裂 .filterchar=>!isWhiteSpacechar&&!isPunctchar 参加 }
console.logcompressHi!你好吗punc应该是正则表达式,或者您的测试应该是.includes,而不是.test。此外,您的代码永远不会通过第一对if/else,因为它们涵盖了100%的可能性。您不能将语音标记直接放入变量中。您需要使用\来逃避它们。所以var punc=;:,?!-\'{};`您的函数compress实际上并没有压缩任何内容。。。它所做的只是返回包含标点符号的天气。另外,param是什么?您尚未定义它…如果space.testparam返回true或'false',则函数将无法到达此处。punc应该是正则表达式,或者您的测试应该是.includes,而不是.test。此外,您的代码永远不会通过第一对if/else,因为它们涵盖了100%的可能性。您不能将语音标记直接放入变量中。您需要使用\来逃避它们。所以var punc=;:,?!-\'{};`您的函数compress实际上并没有压缩任何内容。。。它所做的只是返回包含标点符号的天气。另外,param是什么?您还没有定义它…如果space.testparam返回上面的true或false,则函数将无法到达此处。