使用javascript从字符串中分离值
我有一个字符串,其中每个值都在使用javascript从字符串中分离值,javascript,jquery,Javascript,Jquery,我有一个字符串,其中每个值都在[]之间,并且在末尾有一个。如何从字符串中分离所有值 以下是示例字符串: [value01][value02 ][value03 ]. [value04 ] //want something like this v1 = value01; v2 = value02; v3 = value03; v4 = value04 值的数量不是恒定的。如何从该字符串中分别获取所有值?使用正则表达式指定多个分隔符。请查看以下帖子: 这是如何工作的 .split(/
[]
之间,并且在末尾有一个
。如何从字符串中分离所有值
以下是示例字符串:
[value01][value02 ][value03 ]. [value04 ]
//want something like this
v1 = value01;
v2 = value02;
v3 = value03;
v4 = value04
值的数量不是恒定的。如何从该字符串中分别获取所有值?使用正则表达式指定多个分隔符。请查看以下帖子: 这是如何工作的
.split(/[\[\]\.\s]+/)
在找到以下一个或多个字符的点拆分字符串:[.
。现在,由于这些字符也位于字符串的开头和结尾,.shift()
丢弃第一个元素,.pop()
丢弃最后一个元素,这两个元素都是空字符串。但是,您可能需要使用.filter()
,您可以将第2行和第3行替换为:
var arr = str.split(/[\[\]\.\s]+/).filter(function(elem) { return elem.length > 0; });
现在,您可以使用jQuery/JS迭代这些值:
$.each( arr, function(i,v) {
console.log( v ); // outputs the i'th value;
});
和
arr.length
将提供您拥有的元素数。如果您希望获得介于“[”和“]”之间的字符,并且数据是规则的,并且始终具有模式:
'[chars][chars]...[chars]'
然后可以获取用于获取非“[”或“]”字符序列的字符:
它返回一个数组,因此值为:
Match得到了广泛的支持,因此没有跨浏览器问题。这里有一个小问题:
正则表达式模式:/(\w)+/ig使用\w(字母数字组合)匹配所有单词。空格、括号、点、方括号都是不匹配的,所以它们不会返回 我要做的是创建一个对象,将结果保存在键/值对中,例如v1:“value01”。您可以迭代该对象,也可以直接使用objRes.v1访问这些值
var str = '[value01][value02 ][value03 ]. [value04 ]';
var myRe = /(\w)+/ig;
var res;
var objRes = {};
var i=1;
while ( ( res = myRe.exec(str) ) != null )
{
objRes['v'+i] = res[0];
i++;
}
console.log(objRes);
试试看。我在这里看不到任何问题。请指定您的要求。请提供示例输入和输出,它将如何处理[value01][value02][valu[e]03]这样的情况。当然,很快就会解决。
var values = '[value01][value02 ][value03 ][value04 ]'.match(/[^\[\]]+/g)
["value01", "value02 ", "value03 ", "value04 "]
var str = '[value01][value02 ][value03 ]. [value04 ]';
var myRe = /(\w)+/ig;
var res;
var objRes = {};
var i=1;
while ( ( res = myRe.exec(str) ) != null )
{
objRes['v'+i] = res[0];
i++;
}
console.log(objRes);