掩盖javascript变量值

时间:2013-07-15 08:51:08

标签: javascript variables

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

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

前:

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

var number ="0000000000"

之后我想用其他格式掩盖它。喜欢 -

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

6 个答案:

答案 0 :(得分:6)

有一个类似的问题(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,...,{{1}的格式化文本字符串分别。

所以,对于你提到的其他格式((000)000-0000),代码将是这样的:

$N

您可以在https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide/Regular_Expressions

找到精彩的JavaScript正则表达式参考

答案 1 :(得分:4)

有一个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

答案 2 :(得分:1)

这是一个“掩码”,您可以应用于长度为7或10的电话号码数字字符串,并带有可选的“+”以使用短划线进行渲染。

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

答案 3 :(得分:0)

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

答案 4 :(得分:0)

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

<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>

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

答案 5 :(得分:-3)

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