[英]javascript regex replace 1st and 3rd space in a string
我有两种类型的字符串。 其中一个只有 1 个空格,第二个有 3 个空格。
"100 s"
=> 1 个空格。 数字后跟一个字母。 数字可以是 1..n 位。"2 W 10 h"
=> 3 个空格。 每个数字后跟一个字母。 同样,数字可以是 2..n 位。我需要去掉数字后面的空格。 所以最终的结果应该是这样的:
"100 s"
-> "100s"
"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.