【问题标题】:Mask javascript variable value屏蔽 javascript 变量值
【发布时间】:2013-07-13 01:53:33
【问题描述】:

我想屏蔽我的 javascript 变量值。基本上我在变量中获取电话号码字段值,得到它之后我想以其他格式屏蔽它。

我尝试过jquery Mask plugin,但它掩盖了控件的字符串格式。但我想将字符串掩盖到变量中。

例如:

让我有一个电话字符串"0000000000",我将它存储在一个变量中:-

var number ="0000000000"

然后我想用其他格式屏蔽它。喜欢-

1) number = number.mask('000-0000'); 2) number = number.mask('(000) 000-0000');

【问题讨论】:

  • 你的例子没有意义......零的数量不同。
  • 不管例子中有多少个零,我相信这个问题的目的很明确......
  • 你可以使用这个插件来屏蔽igorescobar.github.io/jQuery-Mask-Plugin
  • 说真的,为什么@elclanrs 评论会得到任何支持?它根本不是建设性的......(虽然也不是我的,哈哈......)

标签: javascript variables


【解决方案1】:

有一个类似的问题(Javascript phone mask for text field with regex)。

您可以使用正则表达式来做到这一点(请参阅http://jsfiddle.net/BBeWN/45/ 的代码):

var value = '1234567';
var formatted = value.replace(/^(\d{3})(\d{4}).*/, '$1-$2');

请注意,包含在括号中的正则表达式的每个部分,如上例中的(\d{3})(\d{4}),然后可以分别使用$1$2 来构建格式化文本字符串。

如果您将正则表达式的 N 部分包含在括号中,您将能够引用它们以分别使用 $1$2、...、$N 构建格式化文本字符串。

因此,对于您提到的其他格式((000)000-0000),代码将是这样的:

var formatted = value.replace(/^(\d{3})(\d{3})(\d{4}).*/, '($1) $2-$3');

您可以在 https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide/Regular_Expressions 找到一个很棒的 JavaScript 正则表达式参考

【讨论】:

    【解决方案2】:

    有一个javascript库可以解决这个问题:

    https://github.com/the-darc/string-mask

    而且您不需要在每次更改掩码(格式)时创建新的正则表达式。

    你可以这样使用它:

    var formatter = new StringMask("(000) 000-0000", { reverse: true });
    var result = formatter.apply('123456789'); // (012) 345-6789
    

    var formatter = new StringMask('#.##0,00', { reverse: true });
    var result = formatter.apply('123456789'); // 1.234.567,89
    

    【讨论】:

      【解决方案3】:

      这是一个“掩码”,您可以将其应用于长度为 7 或 10 的电话号码数字字符串,并带有可选的“+”以用破折号呈现它。

      number.match(/^\+?([0-9]{3}){1,2}([0-9]{4})$/) || []).join('-')
      

      【讨论】:

        【解决方案4】:

        你可以使用我的包https://github.com/jsonmaur/coverup,它可以将被屏蔽的字符串作为变量返回。

        【讨论】:

          【解决方案5】:

          使用 jsuites 插件可以做到这一点

          A) HTML

          <html>
          <script src="https://bossanova.uk/jsuites/v2/jsuites.js"></script>
          <link rel="stylesheet" href="https://bossanova.uk/jsuites/v2/jsuites.css" type="text/css" />
          
          <input data-mask='+44 0000 000 000'>
          
          </html>
          

          B) JAVASCRIPT

          将字符串解析为变量

          <script>
          var test = jSuites.mask.run('123456789', '(000) 000-0000');
          console.log(test);
          </script>
          

          来源:https://bossanova.uk/jsuites/javascript-mask

          【讨论】:

            【解决方案6】:

            simple usa o masked() 维加: $('.date').mask('00/00/0000'); 参数数据 $('.date').masked('26101979'); 赛达 26/10/1979


            简单使用 masked() 看: $('.data').mask('00/00/0000'); 对于日期 $('.date').masked('26101979'); 退出 10/26/1979

            【讨论】:

            • 正如目前所写,您的答案尚不清楚。请edit 添加其他详细信息,以帮助其他人了解这如何解决所提出的问题。你可以找到更多关于如何写好答案的信息in the help center
            【解决方案7】:

            我相信您可以在 apple.com 支持页面上找到您要查找的内容。尝试安排通话并查看他们的电话输入字段。它会根据您输入的位数调整演示文稿。查看源代码,(似乎在某处here)这个具有该字段的 keyup 事件,并且看起来他们正在解析 keyup。

            【讨论】:

              猜你喜欢
              • 1970-01-01
              • 2015-05-12
              • 1970-01-01
              • 2015-12-02
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 2012-01-27
              相关资源
              最近更新 更多