我有文字变量
let data = "text text 04.02.2018 18:02:82 text text"
我有这样的捕获日期的正则表达式:04.02.2018 18:02:82
。
我怎样才能“加粗”matchechs?
data = data.replace(/\d{1,2}.\d{1,2}.\d{4} \d{1,2}:\d{1,2}:\d{1,2}:/g, '<b>$1</b>')
不起作用,因为返回text text <b>$1</b> text text
有什么问题?
感谢您的帮助。
答案 0 :(得分:4)
最后,你有一个冒号字符
data = data.replace(/\d{1,2}.\d{1,2}.\d{4} \d{1,2}:\d{1,2}:\d{1,2}:/g, '<b>$1</b>')
^
为单个空格\s
data = data.replace(/\d{1,2}.\d{1,2}.\d{4} \d{1,2}:\d{1,2}:\d{1,2}:/g, '<b>$1</b>')
^
要匹配点,您需要使用以下内容:\.
另一种方法是将回调函数传递给replace
函数。
let data = "text text 04.02.2018 18:02:82 text text";
data = data.replace(/\d{1,2}\.\d{1,2}\.\d{4}\s\d{1,2}:\d{1,2}:\d{1,2}/g, function(match) {
return `<b>${match}</b>`;
});
console.log(data)
&#13;
答案 1 :(得分:3)
使用以下方法:
let data = "text text 04.02.2018 18:02:82 text text";
data = data.replace(/(\d{1,2}.){2}\d{4} (\d{1,2}:){2}\d{1,2}/g, '<b>$&</b>');
console.log(data);
(一个问题:您的模式在:
中落后\d{1,2}:\d{1,2}:\d{1,2}:
- 虽然它不承担)
答案 2 :(得分:2)
let data = "text text 04.02.2018 18:02:82 text text";
data = data.replace(/(\d{1,2}.\d{1,2}.\d{4} \d{1,2}:\d{1,2}:\d{1,2})/g, '<b>$1</b>');
您必须对模式进行分组才能将结果称为$ 1