<legend id='ENhve'><style id='ENhve'><dir id='ENhve'><q id='ENhve'></q></dir></style></legend><tfoot id='ENhve'></tfoot>
    <i id='ENhve'><tr id='ENhve'><dt id='ENhve'><q id='ENhve'><span id='ENhve'><b id='ENhve'><form id='ENhve'><ins id='ENhve'></ins><ul id='ENhve'></ul><sub id='ENhve'></sub></form><legend id='ENhve'></legend><bdo id='ENhve'><pre id='ENhve'><center id='ENhve'></center></pre></bdo></b><th id='ENhve'></th></span></q></dt></tr></i><div id='ENhve'><tfoot id='ENhve'></tfoot><dl id='ENhve'><fieldset id='ENhve'></fieldset></dl></div>

    1. <small id='ENhve'></small><noframes id='ENhve'>

          <bdo id='ENhve'></bdo><ul id='ENhve'></ul>

        Javascript:传递具有匹配项的函数以替换(正则表达式,func(arg))不起作用

        时间:2023-10-21

        <i id='mT8Tx'><tr id='mT8Tx'><dt id='mT8Tx'><q id='mT8Tx'><span id='mT8Tx'><b id='mT8Tx'><form id='mT8Tx'><ins id='mT8Tx'></ins><ul id='mT8Tx'></ul><sub id='mT8Tx'></sub></form><legend id='mT8Tx'></legend><bdo id='mT8Tx'><pre id='mT8Tx'><center id='mT8Tx'></center></pre></bdo></b><th id='mT8Tx'></th></span></q></dt></tr></i><div id='mT8Tx'><tfoot id='mT8Tx'></tfoot><dl id='mT8Tx'><fieldset id='mT8Tx'></fieldset></dl></div>
        <legend id='mT8Tx'><style id='mT8Tx'><dir id='mT8Tx'><q id='mT8Tx'></q></dir></style></legend><tfoot id='mT8Tx'></tfoot>

          • <bdo id='mT8Tx'></bdo><ul id='mT8Tx'></ul>

            <small id='mT8Tx'></small><noframes id='mT8Tx'>

                    <tbody id='mT8Tx'></tbody>
                  本文介绍了Javascript:传递具有匹配项的函数以替换(正则表达式,func(arg))不起作用的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着跟版网的小编来一起学习吧!

                  问题描述

                  根据该站点,以下替换方法应该可以工作,尽管我对此表示怀疑.http://www.bennadel.com/blog/55-Using-Methods-in-Javascript-Replace-Method.htm

                  According to this site the following replace method should work, though I am sceptical. http://www.bennadel.com/blog/55-Using-Methods-in-Javascript-Replace-Method.htm

                  我的代码如下:

                  text = text.replace( 
                      new Regex(...),  
                      match($1) //$.. any match argument passed to the userfunction 'match',
                                //    which itself invokes a userfunction
                  );
                  

                  我使用的是 Chrome 14,并且没有得到传递给函数匹配的任何参数?

                  I am using Chrome 14, and do not get passed any parameters passed to the function match?

                  更新:

                  使用时有效

                  text.replace( /.../g, myfunc($1) );
                  

                  JavaScript 解释器需要一个 闭包, - 明显的用户函数似乎会导致范围问题,即不会调用进一步的用户函数.最初我想避免闭包以防止必要的内存消耗,但已经有了保障.

                  The JavaScript interpreter expects a closure, - apparent userfunctions seem to lead to scope issues i.e. further userfunctions will not be invoked. Initially I wanted to avoid closures to prevent necessary memory consumption, but there are already safeguards.

                  要将参数传递给您自己的函数,请这样做(其中参数 [0] 将包含整个匹配项:

                  To pass the arguments to your own function do it like this (wherein the argument[0] will contain the entire match:

                  result= text.replace(reg , function (){
                          return wrapper(arguments[0]);
                  });
                  

                  另外我在字符串转义和正则表达式中遇到了问题,如下所示:

                  Additionally I had a problem in the string-escaping and thus the RegEx expression, as follows:

                  /s......s/g

                  新正则表达式 ("s......s" , "g")
                  新正则表达式 ('s......s' , "g")

                  所以要小心!

                  推荐答案

                  $1 必须在字符串中:

                  $1 must be inside the string:

                  "string".replace(/st(ring)/, "gold $1") 
                  // output -> "gold ring"
                  

                  有一个功能:

                  "string".replace(/st(ring)/, function (match, capture) { 
                      return "gold " + capture + "|" + match;
                  }); 
                  // output -> "gold ring|string"
                  

                  这篇关于Javascript:传递具有匹配项的函数以替换(正则表达式,func(arg))不起作用的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持跟版网!

                  上一篇:如何在 Javascript 中对对象进行切片? 下一篇:querySelector 方法参数被放入反引号,为什么?

                  相关文章

                  1. <legend id='7iEVz'><style id='7iEVz'><dir id='7iEVz'><q id='7iEVz'></q></dir></style></legend>

                    <small id='7iEVz'></small><noframes id='7iEVz'>

                    <i id='7iEVz'><tr id='7iEVz'><dt id='7iEVz'><q id='7iEVz'><span id='7iEVz'><b id='7iEVz'><form id='7iEVz'><ins id='7iEVz'></ins><ul id='7iEVz'></ul><sub id='7iEVz'></sub></form><legend id='7iEVz'></legend><bdo id='7iEVz'><pre id='7iEVz'><center id='7iEVz'></center></pre></bdo></b><th id='7iEVz'></th></span></q></dt></tr></i><div id='7iEVz'><tfoot id='7iEVz'></tfoot><dl id='7iEVz'><fieldset id='7iEVz'></fieldset></dl></div>
                    1. <tfoot id='7iEVz'></tfoot>

                        <bdo id='7iEVz'></bdo><ul id='7iEVz'></ul>