[英]Extract chars enclosed in complex brackets within a string in most efficient way
[英]Most efficient way to extract parts of string
我有一堆格式為“ 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('_');
在效率方面,兩種方法都包含大約相同數量的代碼。
您可以使用正則表達式和split
var string='TYPE_1_VARIABLE_NAME'; var div=string.split(/^([AZ]+)_(\\d+)_(\\w+)$/); console.log('type:'+div[1]); console.log('num:'+div[2]); console.log('name:'+div[3]);
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.