Javascript正则表达式:如何在javascript中创建正则表达式以在特定常量单词和句点之间提取单词

时间:2017-10-30 04:27:48

标签: regex

我正在尝试创建一个正则表达式,我可以在特定的常量单词和句点之间提取名称。

测试句:

欢迎回到库马尔。您最后一次登录是2017年4月10日。

结果: 我想提取" Kumar"从句子。

我确实创建了以下正则表达式:

回到\ S *(\ W +)[^。]

结果如下: "回到Kumar"

我无法找到删除" Back"字和最后的句号。

2 个答案:

答案 0 :(得分:0)

如果你想在“Back \ s *”之后找到一个没有实际匹配“Back \ s *”的模式,你可以使用正面的后视。

 function editForm() {
         var selected_task = gantt.getSelectedTasks();
          $.when(selected_task.map(function(task) {
            var data = gantt.getTask(task);
            return $.ajax({
                    type: 'PUT',
                    url: '/api/dashboard/workorder_detail/' + data.workorder_id + '/',
                    data: postData,
                })
        }).then(function(results) {
           $('#edit_form_modal').modal('hide');
           gantt.clearAll();
           gantt.load("/api/scheduler/{{ selected_project.id }}/?format=json", "json");

        })
    }

此解决方案还会将名称与空格匹配,例如欢迎返回pattern = /(?<=^Welcome Back)\s*([\w\s]*)(?=\.)/; results = "Welcome Back Kumar.".match(pattern); console.log(results[1]); // "Kumar"

您可以在此处试用:https://regex101.com/r/grhMk9/1

答案 1 :(得分:0)

这个正则表达式应该可行。

function formattedDate(d = new Date) {
  let month = String(d.getMonth() + 1);
  let day = String(d.getDate());
  const year = String(d.getFullYear());

  if (month.length < 2) month = '0' + month;
  if (day.length < 2) day = '0' + day;

  return `${day}/${month}/${year}`;
}

基本上仅捕获单词“Back”和之后的第一个句点之间的内容。