Javascript替换为正则表达式而不影响字符串

时间:2015-06-01 10:19:11

标签: javascript jquery regex

我有一个webapp任务管理器。

该应用可识别字符串中的日/月。

我有一个函数可以复制今天选定的任务,但我试图让函数更新字符串中的日期。

因此,例如,Do this task! 29/5将成为Do this task! 1/6

该功能目前如下所示:

var d   = new Date();
var mon = d.getMonth()+1;
var day = d.getDate();

$('input.replicateCheck:checkbox:checked').each(function(){
    //string of row (nam)
    var nam = $(this).parent().find('input.row-name').val();

    //replace existing date with current date
    nam = nam.replace('\d{1,2}\/\d{1,2}',day+'/'+mon);

    console.log(nam);
});

但是它没有替换字符串中的日期。

问题在于这一行:

nam = nam.replace('\d{1,2}\/\d{1,2}',day+'/'+mon);

为什么这不起作用?

编辑根据要求,根据答案,这是我正在努力实现的工作版本:

$('button#go').click(function() {
  var text = $('#testInput').val();

  var d = new Date();
  var mon = d.getMonth() + 1;
  var day = d.getDate();

  newText = text.replace(/\d{1,2}\/\d{1,2}/, day + '/' + mon);

  alert(newText);
});
* {
  width: 100%;
  box-sizing: border-box;
  -moz-box-sizing: border-box;
  -webkit-box-sizing: border-box;
  padding: 10px;
}
button {
  margin-top: 20px;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<input type="text" id="testInput" value="The quick brown fox jumps on 26/5" />
<br/>
<button id="go">Go!</button>

2 个答案:

答案 0 :(得分:3)

您缺少正则表达式分隔符:

Y[600]

答案 1 :(得分:3)

您需要提供RegEx分隔符

nam = nam.replace(/\d{1,2}\/\d{1,2}/,day+'/'+mon); 
                  ^                ^