我的字符串与此类似。
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
答案 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
数组包含三个值customerid
,dept
和dept
答案 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
答案 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(",")