【问题标题】:Separate value from string using javascript使用javascript从字符串中分离值
【发布时间】:2014-08-04 00:51:54
【问题描述】:

我有一个字符串,其中每个值都在[] 之间,最后有一个.。如何将字符串中的所有值分开?

这是示例字符串:

[value01][value02 ][value03 ]. [value04 ]

//want something like this 
v1 = value01;
v2 = value02;
v3 = value03;
v4 = value04  

值的数量不是恒定的。如何从这个字符串中单独获取所有值?

【问题讨论】:

  • 试试RegEx
  • 我在这里没有看到任何问题。
  • 请说明您的要求..
  • 请提供样本输入和输出,
  • 它将如何处理 [value01][value02][value[e]03] 等情况

标签: javascript jquery


【解决方案1】:

使用正则表达式指定多个分隔符。请查看以下帖子:

How do I split a string with multiple separators in javascript?

Split a string based on multiple delimiters

var str = "[value01][value02 ][value03 ]. [value04 ]"
var arr = str.split(/[\[\]\.\s]+/);
arr.shift(); arr.pop(); //discard the first and last "" elements
console.log( arr ); //output: ["value01", "value02", "value03", "value04"]

JS FIDDLE DEMO

这是如何工作的

.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 会给你你拥有的元素数量。

【讨论】:

  • 好的,很快就会做。
【解决方案2】:

如果你想获取“[”和“]”之间的字符,并且数据是有规律的并且总是有模式:

'[chars][chars]...[chars]'

然后您可以使用match 获取字符以获取不是“[”或“]”的字符序列:

var values = '[value01][value02 ][value03 ][value04 ]'.match(/[^\[\]]+/g) 

返回一个数组,所以 values 是:

["value01", "value02 ", "value03 ", "value04 "]

Match 得到了非常广泛的支持,因此不会出现跨浏览器问题。

【讨论】:

    【解决方案3】:

    这是一个小提琴:http://jsfiddle.net/5xVLQ/

    正则表达式模式:/(\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);
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-04-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多