javascript - String.matchAll 未定义

标签 javascript node.js visual-studio-code

我正在 Node 中创建一个包来解析和操作 csv,并需要使用 String.matchAll() ,但我收到一条错误消息,指出 str.matchAll 不是函数。我尝试切换到 str.match() 并得到相同的错误。我尝试分别console.log 和都返回未定义。我在 Visual Studio Code PowerShell 中输入 node -v 并输出 v10.16.3

我的代码

fs = require('fs');

class Table {
    //the function I needed it for
    removeRow(header, value){
        let regLine = "";
        for(let i=0; i<this.colArr.length; i++){
            if (this.colArr[i][0]==header){
                regLine+=value+",";
            }else{
                regLine+=".*,"
            }
        }
        regLine = "\n"+regLine.substring(0,regLine.length-2)+"\n";
        let regex = new RegExp(regLine);

        let removed = this.text.matchAll(regex);//this line
        let newText = this.text.replace(regex,"\n");
        fs.writeFile(this.link, newText);
        this.update();
        return removed;
    }
}

在标记的行处,它抛出错误 this.text 不是函数 我 console.logged typeof(this.text) 它给出了字符串,所以我不'不知道发生了什么

最佳答案

String.matchAll 仅从 Node.js 12.0 开始可用(请参阅此处的兼容性: string.matchAll )。

但是,String.match 在 Node.js 的早期版本中应该可用。

这是我创建的一个实际示例(Node v10.16.0):https://repl.it/repls/PunctualRareHypotenuse

我建议还确保有问题的对象是一个字符串,只是为了确定!

此外,如果您可以轻松升级,请尝试安装Node.js 12 .

代码:

var str = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz';
var regexp = /[A-E]/g;
var matches_array = str.match(regexp);

console.log(matches_array);

关于javascript - String.matchAll 未定义,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58558257/

相关文章:

javascript - C/SSL/JQuery.ajax() 客户端 -> 服务器连接重置,但发送了 1 个字节

python - 无法在 vscode 中使用 jupyter 笔记本中的导入

opencv - 在 opencv 调试中查看图像

python - VS 代码无法识别我在 Mac 上安装的 Python 包

javascript - Element.scrollHeight 与 height() 方法返回的高度的区别

javascript - JS Regex - 匹配每个未转义的特定字符

javascript - 如果文本框输入值发生变化,则验证该字段...但是如果... Javascript

javascript - Node/Express 中的 Ajax 删除请求和响应 - 在调用方法后如何使用 GET 方法重定向?

javascript - 将数据传递到 Meteor 中的路由

node.js - 连接到本地主机 :3000 from another computer | expressjs, nodejs