<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))不起作用

        Javascript: Passing a function with matches to replace( regex, func(arg) ) doesn#39;t work(Javascript:传递具有匹配项的函数以替换(正则表达式,func(arg))不起作用)

        <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))不起作用的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持跟版网!

                  本站部分内容来源互联网,如果有图片或者内容侵犯了您的权益,请联系我们,我们会在确认后第一时间进行删除!

                  相关文档推荐

                  Toggle HTML radio button by clicking its label(通过单击标签来切换 HTML 单选按钮)
                  Javascript how to change radio button label text?(Javascript如何更改单选按钮标签文本?)
                  JavaScript radio button confirmation(JavaScript 单选按钮确认)
                  How can I automatically select specific radio buttons with Greasemonkey?(如何使用 Greasemonkey 自动选择特定的单选按钮?)
                  AngularJs. Is it possible to deselect HTML “radio” input by click?(AngularJs.是否可以通过单击取消选择 HTML“收音机输入?)
                  Checking Value of Radio Button Group via JavaScript?(通过 JavaScript 检查单选按钮组的值?)

                      • <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>
                            <tbody id='7iEVz'></tbody>

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