8

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

我已经尝试过jquery Mask 插件,但它屏蔽了控件的字符串格式。但我想将字符串屏蔽到变量中。

前任:

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

var number ="0000000000"

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

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

4

6 回答 6

22

有一个类似的问题(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 正则表达式参考

于 2013-07-15T09:02:27.427 回答
7

有一个 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
于 2018-08-16T09:23:36.687 回答
1

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

number.match(/^\+?([0-9]{3}){1,2}([0-9]{4})$/) || []).join('-')
于 2013-07-15T09:02:22.953 回答
0

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

于 2016-05-11T20:09:42.233 回答
0

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

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

于 2019-12-18T18:59:48.890 回答
-6

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

于 2015-12-16T06:26:53.663 回答