如何仅保留单词的首字母(缩写)和字符串中的所有数字?

时间:2016-01-14 15:23:28

标签: javascript regex

我喜欢" 33分钟"和" 2小时20分钟"例如,我希望它们缩写为" 33m"和" 2h20m。"

到目前为止,我有这个(基于堆栈交换上的类似问题):https://jsfiddle.net/3tzrs7we/



var str1 = "33 minutes";
var str2 = "2 hours 20 minutes";

var str3 = str1.replace(/(\w)\w*\W*/g, function(_, i) {
  return i.toUpperCase();
})
var str4 = str2.replace(/(\w)\w*\W*/g, function(_, i) {
  return i.toUpperCase();
})
alert(str3 + ", " + str4);




但是那回归" 3M"和" 2H2M。"

(这只是一个例子,在我的代码中看起来像${r.time.replace(/(\w)\w*\W*/g, function (_, i) {return i.toUpperCase();})}

3 个答案:

答案 0 :(得分:0)

我认为你不需要在这个有限的案例中使用正则表达式:

var long = "2 hours 20 minutes";
var short = long.replace(" minutes", "m").replace(" hours", "h");

答案 1 :(得分:0)

例如,

var str2 = "  2 hours 20 minutes  ";
document.write(str2.replace(/([a-z])\w+|\s+/g, "$1"))

答案 2 :(得分:0)

var str1 = "33 minutes";
var str2 = "2 hours 20 minutes";

var str3 = str1.replace(/(\w)\w*\W*/g, function(_, i) {
return i.toLowerCase();
})
var str4 = str2.replace(/(\w)\w*\W*/g, function(_, i) {
return i.toLowerCase();
})
alert(str3 + ", " + str4);