function getStatementValue(view, statement){ // vars "@extends('parentview') ", 'extends'
    var parentname = "";

    view.replace(new RegExp(/\B@\w+\('([^(')\W]+)'\)\s/, 'm'), function(occurance){
        parentname = occurance.replace('@' + statement + '(\'', '')
            .replace('\')', "");
        console.log(parentname) // parentview
        console.log(parentname + 'test') // testntview <- unexpected result
    });

    return parentname;
}


我不知道结果如何出现。
当我按console.log中所示添加字符串时,它从一开始就替换了该字符串,就像在重新分配内存空间一样。这应该发生吗?如何返回正确的parentviewtest结果?

最佳答案

parentname = occurance.replace('@' + statement + '(\'', '')
     .replace('\')', "").trim();


通过在字符串修改中添加.trim()来解决该问题。我的输入内容包括我不知道的不可见\ r和\ n字符。

感谢@JaromandaX指出了这一点

09-25 18:23