gpt4 book ai didi

javascript - 提取字符串部分的最有效方法

转载 作者:行者123 更新时间:2023-11-29 19:10:34 25 4
gpt4 key购买 nike

我有一堆格式为“TYPE_1_VARIABLE_NAME”的字符串。

目标是获取 3 个变量,形式为:

varType = 'TYPE',
varNumber = '1',
varName = 'VARIABLE_NAME'

实现此目标的最有效方法是什么?

我知道我可以使用:

var firstUnderscore = str.indexOf('_')
varType = str.slice(0, firstUnderscore))
varNumber = str.slice(firstUnderscore+1,firstUnderscore+2)
varName = str.slice(firstUnderscore+3)

但这感觉像是一种糟糕的做法。有没有更好的办法?正则表达式?

或者我应该将变量重命名为“TYPE_1_variableName”并执行以下操作:

varArray = str.split('_')

然后让他们:

varType = varArray[0],
varNumber = varArray[1],
varName = varArray[2]

感谢任何帮助。 jQuery 也可以。

最佳答案

正则表达式解决方案

鉴于第一个和第二个下划线是分隔符,此正则表达式方法将提取部分(允许在最后部分使用下划线):

//input data
var string = 'TYPE_1_VARIABLE_NAME';

//extract parts using .match()
var parts = string.match(/([^_]+)_([^_]+)_([^$]+)/);

//indexes 1 through 3 contains the parts
var varType = parts[1];
var varNumber = parts[2];
var varName = parts[3];

鉴于第一个变量由字符和第二个数字组成,可以使用这个更具体的正则表达式来代替:

var parts = string.match(/(\w+)_(\d)_(.+)/);

非正则表达式解决方案

使用 .split('_'),你可以这样做:

//input data
var string = 'TYPE_1_VARIABLE_NAME';

//extract parts using .split()
var parts = string.split('_');

//indexes 0 and 1 contain the first parts
//the rest of the parts array contains the last part
var varType = parts[0];
var varNumber = parts[1];
var varName = parts.slice(2).join('_');

在效率方面,两种方法包含的代码量大致相同。

关于javascript - 提取字符串部分的最有效方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39172998/

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