【问题标题】:jQuery replace on focusoutjQuery替换焦点
【发布时间】:2015-03-13 22:34:11
【问题描述】:

我在这个论坛上阅读了很多次,但现在我有一个自己的问题。我需要将字符串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.”。那么如何做到这一点呢?希望有人能帮我解决这个问题。

迈克尔

【问题讨论】:

    标签: jquery regex replace


    【解决方案1】:

    在 JavaScript 中你可以这样做:

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

    【讨论】:

      【解决方案2】:

      您显示的正则表达式似乎不正确。它应该取代 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"
      

      【讨论】:

      • 效果很好。非常感谢!
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-07-01
      • 1970-01-01
      相关资源
      最近更新 更多