gpt4 book ai didi

javascript - 使用 javascript 查找最后一次出现的字符

转载 作者:行者123 更新时间:2023-12-01 04:03:00 25 4
gpt4 key购买 nike

我想知道如何从这段代码中获取“widget”表达式:

blablablalbadsj kds {{widget type="Magento\FooBard\Block\Widget\Script" wysywig_text="<img src='{{media url='wysiwyg/something.png'}}' alt='' />"}} ksakkdkkcxz {{media url='wysiwyg/something2.png'}}

最后,我想要这样:

{{widget type="Magento\FooBard\Block\Widget\Script" wysywig_text="<img src='{{media url='wysiwyg/something.png'}}' alt='' />"}}

我一直在思考这个问题,我有这样的正则表达式:

/\{\{widget(.*?)\}}/

但这不起作用,它只是匹配:

{{widget type="Bold\Gtm\Block\Widget\Script" wysywig_text="<img src='{{media url='wysiwyg/compare_brightness.png'}}

不带:alt=''/>"

最佳答案

我的建议是不要使用正则表达式,因为该字符串不规则。因此尝试使用正则表达式解析它将会非常困难。

var str =`blablablalbadsj kds {{widget type="Magento\FooBard\Block\Widget\Script" wysywig_text="<img src='{{media url='wysiwyg/something.png'}}' alt='' />"}} ksakkdkkcxz {{media url='wysiwyg/something2.png'}}`

var startWdigetPos = str.indexOf("{{widget"),endWidgetPost = 0;
const regex = /{{|}}/mg;


var openedTags=0;
var closedTags=0;
while ((m = regex.exec(str.substr(startWdigetPos))) !== null) {
// This is necessary to avoid infinite loops with zero-width matches
if (m.index === regex.lastIndex) {
regex.lastIndex++;
}

if (m[0]=="{{"){
openedTags++;
}else if (m[0]="}}"){
closedTags++;

}
if (openedTags === closedTags){
endWidgetPost = regex.lastIndex ;
break;
}

}
if (endWidgetPost){
console.log(str.substr(startWdigetPos,endWidgetPost));
}

关于javascript - 使用 javascript 查找最后一次出现的字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42038403/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com