如何从主字符串中获取子字符串值?

时间:2015-08-03 14:41:40

标签: javascript jquery

我的字符串与此类似。

HTML

var str = "samplestring=:customerid and samplestring1=:dept";

JS

var parts = str.split(':');
var answer = parts;

我想修剪以主字符串

开头的冒号:符号开头的子串

但它正在像这样重新调整价值

samplestring=,customerid and samplestring1=,dept

但我想要这样的东西。

customerid,dept

我动态获取主字符串,它的冒号可能超过2。

我也创造了一个小提琴link

8 个答案:

答案 0 :(得分:5)

var str = "samplestring=:customerid and samplestring1=:dept";
alert(str.match(/:(\w+)/g).map(function(s){return s.substr(1)}).join(","))

答案 1 :(得分:3)

你可以试试正则表达式:

var matches = str.match(/=:(\w+)/g); 
var answer = [];

if(matches){
    matches.forEach(function(s){
        answer.push(s.substr(2));
    });
}

答案 2 :(得分:2)

这是一个单行:

$.map(str.match(/:(\w+)/g), function(e, v) { return e.substr(1); }).join(",")

答案 3 :(得分:1)

你可以这样试试

var str = "samplestring=:customerid and samplestring1=:dept and samplestring11=:dept";

var results = [];

var parts = str.split(' and ');
$.each(parts, function( key, value ) {
    results.push(value.split(':')[1]);
});

现在results数组包含三个值customeriddeptdept

答案 4 :(得分:1)

尝试

var str = "samplestring=:customerid and samplestring1=:dept";
var parts = str.split(':');
var dept = parts[2];
var cus_id = parts[1].split(' and ')[0];
alert(cus_id + ", " + dept );

使用此功能,您将获得类似:customerid,dept

的o / p

答案 5 :(得分:1)

这将为您提供所需的......

var str = "samplestring=:customerid and samplestring1=:dept";
var parts = str.split(' and ');
var answer = [];
for (var i = 0; i < parts.length; i++) {
  answer.push(parts[i].substring(parts[i].indexOf(':')+1));    
}

alert(answer);

答案 6 :(得分:1)

var str = "samplestring=:customerid and samplestring1=:dept";
alert(str.replace(/[^:]*:(\w+)/g, ",$1").substr(1))

答案 7 :(得分:1)

这里\S S是大写的,不是空格字符所以它会得到第一个空格匹配的单词,所以它会匹配:之后的单词直到第一个空格,我们使用/g不仅匹配fisrt单词并继续在字符串中搜索其他匹配项:

str.match(/:(\S*)/g).map(function(s){return s.substr(1)}).join(",")