繁体   English   中英

javascript 正则表达式替换字符串中的第一个和第三个空格

[英]javascript regex replace 1st and 3rd space in a string

我有两种类型的字符串。 其中一个只有 1 个空格,第二个有 3 个空格。

  • V1: "100 s" => 1 个空格。 数字后跟一个字母。 数字可以是 1..n 位。
  • V2: "2 W 10 h" => 3 个空格。 每个数字后跟一个字母。 同样,数字可以是 2..n 位。

我需要去掉数字后面的空格。 所以最终的结果应该是这样的:

  • V1: "100 s" -> "100s"
  • V2: "2 W 10 h" ->“2 瓦 10 小时"2W 10h"

目前,我使用 JavaScript 拆分 function。 但是我需要正则表达式以更有效的方式替换。 你能帮我解决这个问题吗? 谢谢。

const getDelayValue = delayString => {
    const splitted = delayString.split(/\s+/);
    if (splitted) {
        if (splitted.length === 2) {
            return `${splitted[0]}${splitted[1]}`;
        }
        return `${splitted[0]}${splitted[1]} ${splitted[2]}${splitted[3]}`;
    }
    return delayString;
}

只需将numbers space string替换为numbers string

 str = ` 100 s 2 W 10 h ` console.log( str.replace(/(\d+)\s+([az]+)/gi, "$1$2") )

有关替换中$1的含义,请参见此处

您可以使用正则表达式删除空格

 const str1 = '100 s'; const str2 = '2 W 10 h'; function removeSpace(str) { // as @ Keith pointed out, you can also use: // return str.replace(/(\d+) +/g, '$1'); // \d is a shortcut for [0-9] return str.replace(/([0-9]+) +/g, '$1'); } console.log(removeSpace(str1)); console.log(removeSpace(str2));


我们匹配一个数字后跟一个空格。 然后只用数字替换它。 要创建和测试您的正则表达式,您可以使用网站https://regex101.com/

在此处输入图像描述

在此处输入图像描述

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM