jQuery替换焦点

时间:2015-01-15 13:57:25

标签: jquery regex replace

我一直在这个论坛上阅读很多次,但现在我有了自己的问题。我需要将字符串01.01.2014替换为1. 1. 2014.我无法找到解决方案。这是我最接近的。

$('#date').focusout(function () {
  var strText = $(this).val();
  strReplaceAll = strText.replace( new RegExp( "01", "g" ), "1. " );
  alert(strReplaceAll);
});

然而,这将返回字符串1. 1. 21. 4

我在tre RegExp字符串中尝试使用.01,但这会返回1. 1. 21.

所以似乎我不能使用“01”。那么怎么做呢?希望有人可以帮我解决这个问题。

迈克尔

2 个答案:

答案 0 :(得分:3)

您显示的正则表达式似乎不正确。它应该取代02.02.2014,15.03.2023等?如果是这样,那么你应该使用这个替代品:

s.replace(/0(\d+)\./g, '$1. ')

示例:

'01.01.2014'.replace(/0(\d+)\./g, '$1. ') // replaces to "1. 1. 2014"
'23.04.2029'.replace(/0(\d+)\./g, '$1. ') // replaces to "23.4. 2029"
'01.11.2029'.replace(/0(\d+)\./g, '$1. ') // replaces to "1. 11.2029"

另一个解决方案(没有正则表达式)的行为与前一个完全相同:

s = '01.01.2014'
s.split('.').map(parseFloat).join('. ') // replaces to "1. 1. 2014"

答案 1 :(得分:0)

在JavaScript中,您可以使用:

var myregexp = /\b0(\d)\b/g;
result = subject.replace(myregexp, "$1");