gpt4 book ai didi

javascript - 大括号、等号和 JavaScript 正则表达式

转载 作者:行者123 更新时间:2023-11-28 13:40:59 25 4
gpt4 key购买 nike

我的 HTML 页面中有以下示例标记:

{#abc,def#}

使用 javascript,我需要从这些标记中提取文本,如下所示:

abc,def

我正在使用这个reg exp:

/(({#).*(?=#})) /g

但它匹配两个组:

group1: {#test, date group2: {#

如何更改它们以匹配正确的组?

最佳答案

> '{#abc,def#}'.match(/{#(.*?)#}/)[1]
'abc,def'

更新

> var xs = '{#abc,def#} foobar {#ghi,jkl#}'.match(/{#(.*?)(?=#})/g);
> for (var i = 0; i < xs.length; i++) xs[i] = xs[i].substr(2);
> xs
[ 'abc,def', 'ghi,jkl' ]

或者一句单行:

var tokens = (str.match(/{#(.*?)(?=#})/g) || []).map(function(match)
{
return match.substr(2);
});
console.log(tokens);//[ 'abc,def', 'ghi,jkl' ]

如果您想支持所有浏览器/实现,您可能必须增强数组原型(prototype):

if (!Array.prototype.map)
{
Array.prototype.map = function(callback)
{
if (typeof callback !== 'function')
{
throw new TypeError(callback + ' is not a function');
}
for(var i = 0;i<this.length;i++)
{
this[i] = callback(this[i]);
}
return this.slice();
};
}

关于javascript - 大括号、等号和 JavaScript 正则表达式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17852824/

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