如何拆分特定的字符串值?

时间:2018-04-10 12:32:35

标签: javascript string replace slice

我有两种类型的字符串,如...

var a = "23 years 08months 12 days";
var b = "5 years 8 months 1 days";

我想减少这个字符串...

"23 years 08 months" 
"5 years 8 months"

我尝试使用replace和split这样......

var a = "23 years 03 months 24 days";
var b = a.replace(/ /g,'')
var c;
if(b.length < 23){c = b.slice(0,13) }

但它不是常量的方法!有什么建议吗?

5 个答案:

答案 0 :(得分:3)

这应该可以解决问题,而不使用正则表达式

var s = 'months';
var a = '23 years 03 months 24 days';

a = a.substring(0, a.lastIndexOf(s) + s.length);

答案 1 :(得分:1)

您可以尝试以下正则表达式:

(?<=months).*

(?&lt; =)是一个积极的后卫,它将确保您与。*匹配的所有内容都将以数月开头。

这将导致JS:

a.replace(/(?<=months).*/g,'');

答案 2 :(得分:1)

以下是一个工作示例,根据您的评论,表明您希望在几个月内切断:

&#13;
&#13;
var a = "23 years 08 months 12 days";
var b = "5 years 8 months 1 days";

console.log(a.split("months")[0]+" months");
console.log(b.split("months")[0]+"months");
&#13;
&#13;
&#13;

答案 3 :(得分:1)

您可以搜索并替换年份和月份值。

function yearMonth(s) {
    return s.replace(/^(\d+)\s*years\s*(\d+)\s*months(.*)/, '$1 years $2 months');
}

console.log(yearMonth("23 years 08months 12 days"));
console.log(yearMonth("5 years 8 months 1 days"));

答案 4 :(得分:0)

只需在resolvers上拆分,然后将字符串months附加到拆分数组的第一个值:

&#13;
&#13;
months
&#13;
&#13;
&#13;

您还可以使用子字符串方法:

&#13;
&#13;
var a = "23 years 08 months 12 days";
var b = "5 years 8 months 1 days";
var res = a.split('months')[0] + 'months';
console.log(res);
res = b.split('months')[0] + 'months';
console.log(res);
&#13;
&#13;
&#13;