正则表达式捕获字符并替换为另一个
Regex Capture Character and Replace with another
正在尝试用 dot
替换数字前面的 special characters
。
const time = "17:34:12:p. m.";
const output = time.replace(/\d+(.)/g, '.');
// Expected Output "17.34.12.p. m."
console.log(output);
我已经编写了正则表达式,它将捕获任何以 digit/s 开头的字符。输出也用替换替换数字。有人可以帮我解决这个问题吗?
您可以使用
const time = "17:34:12:p. m.";
const output = time.replace(/(\d)[\W_]/g, '.');
console.log(output);
time.replace(/(\d)[\W_]/g, '.')
代码将匹配并将数字捕获到组 1 中并匹配任何非单词或下划线字符,.
替换将放回数字并替换 :
与 .
.
如果您想从 [\W_]
中“减去”空白模式,请使用 (?:[^\w\s]|_)
。
考虑检查 中的更多特殊字符模式。
您应该查找非单词 (\w
) 和非空格 (\s
) 字符并将它们替换为点。
您应该为正则表达式使用一些实时模拟器。例如 regex101
: https://regex101.com/r/xIStHH/1
const time = "17:34:12:p. m.";
const output = time.replace(/[^\w\s]/g, '.');
// Expected Output "17.34.12.p. m."
console.log(output);
正在尝试用 dot
替换数字前面的 special characters
。
const time = "17:34:12:p. m.";
const output = time.replace(/\d+(.)/g, '.');
// Expected Output "17.34.12.p. m."
console.log(output);
我已经编写了正则表达式,它将捕获任何以 digit/s 开头的字符。输出也用替换替换数字。有人可以帮我解决这个问题吗?
您可以使用
const time = "17:34:12:p. m.";
const output = time.replace(/(\d)[\W_]/g, '.');
console.log(output);
time.replace(/(\d)[\W_]/g, '.')
代码将匹配并将数字捕获到组 1 中并匹配任何非单词或下划线字符,.
替换将放回数字并替换 :
与 .
.
如果您想从 [\W_]
中“减去”空白模式,请使用 (?:[^\w\s]|_)
。
考虑检查
您应该查找非单词 (\w
) 和非空格 (\s
) 字符并将它们替换为点。
您应该为正则表达式使用一些实时模拟器。例如 regex101
: https://regex101.com/r/xIStHH/1
const time = "17:34:12:p. m.";
const output = time.replace(/[^\w\s]/g, '.');
// Expected Output "17.34.12.p. m."
console.log(output);