我为什么会收到错误"未捕获的TypeError:st.replace不是函数"

时间:2016-05-04 00:59:25

标签: javascript jquery string str-replace

我试图建立一个投资组合。我不是一个JavaScript专家,我不知道要删除什么,或者有什么问题。页面工作正常,但一旦我尝试进入主页,退出非常慢,控制台抛出错误。

"未捕获的TypeError:st.replace不是函数"

下面的代码段是有问题的部分,只要我点击主页按钮离开“服务”,就会出现错误。页。

感谢您对代码段中不正确的任何说明表示感谢,谢谢。

            htmlDoc: function(st) {
                var n, i = e(),
                    r = /<(\/?)(html|head|body|title|base|meta)(\s+[^>]*)?>/gi,
                    o = "ss" + Math.round(1e5 * Math.random()),
                    a = st.replace(r, function(t, n, r, a) {
                        var s = {};
                        return n || (e.merge(i, e("<" + r + "/>")), a && e.each(e("<div" + a + "/>")[0].attributes, function(e, t) {
                            s[t.name] = t.value
                        }), i.eq(-1).attr(s)), "<" + n + "div" + (n ? "" : ' id="' + o + (i.length - 1) + '"') + ">"
                    });
                return i.length ? (n || (n = e("<div/>")), n.html(a), e.each(i, function(e) {
                    var t = n.find("#" + o + e).before(i[e]);
                    i.eq(e).html(t.contents()), t.remove()
                }), n.children().unwrap()) : e(t)
            },

编辑FelixKling

谢谢,@ FelixKling似乎有几个值:

&#34; st = / - ([\ _d-z])/ gi,&#34;

&#34; st =&#34; :(&#34; + rt +&#34;)(?:((&#39;((?:\\。| [^ \\&#39;]))&#39; | \&#34;((?:\\ | [^ \\\&#34;]))\&#34;)|((:\\?。 | [^ \()[]] |&#34; + at +&#34;))|。))|)&#34;,&#34;

&#34; St = [&#34; Top&#34;,&#34; Right&#34;,&#34; Bottom&#34;,&#34; Left&#34;],&#34;

但是最后一个有大写字母S.请复制粘贴这个答案,以便更清楚地阅读。如果我需要解释一些,请告诉我。

1 个答案:

答案 0 :(得分:0)

您的问题似乎是st不是字符串。在函数顶部添加一个验证行,以确保参数属于预期类型。

if (typeof st !== 'string') {
    // HANDLE IT HERE (throw an error, return false/null, whatever you need
}