如何在javascript中使用正则表达式加粗文本

时间:2018-02-04 17:50:17

标签: javascript regex

我有文字变量

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

有什么问题?

感谢您的帮助。

3 个答案:

答案 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函数。

&#13;
&#13;
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;
&#13;
&#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