屏蔽 JavaScript 变量值

问题描述 投票:0回答:8

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

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

例如:

让我有一个电话字符串

"0000000000"
,我将其存储在变量中:-

var number ="0000000000"

之后我想以其他格式屏蔽它。Like-

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

javascript variables
8个回答
25
投票

有一个类似的问题(带有正则表达式的文本字段的Javascript电话掩码)。

您可以使用正则表达式来完成此操作(请参阅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 正则表达式参考

9
投票

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

1
投票

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

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

0
投票

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


0
投票

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


0
投票

您可能会发现 https://jsuites.net/docs/javascript-mask 很有用 它也可以在 FE 和 Nodejs 上使用


-2
投票

启动Jquery

$(document).ready(function(){
   $('.phone_us').mask('(000) 000-0000');
}

遮罩html

<input id="seachPeople" type="text" placeholder="Pesquisar" class="phone_us">

获取屏蔽字符串

// your string
var phoneApi ='0000000000'     
var phone  = ('.phone_us').masked(phoneApi);
consoe.log(phone)
//exit -> (000) 000-0000

<input id="seachPeople" type="text" placeholder="Pesquisar" class="phone_us">


<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<script src="http://igorescobar.github.io/jQuery-Mask-Plugin/js/jquery.mask.min.js"></script>

<script>
$('.phone_us').mask('(000) 000-0000');
// your string that comes from somewhere could be from an API
const numberPhone = '1111111111';
const maskPgoneStriong = $('.phone_us').masked(numberPhone);
console.log(maskPgoneStriong);
alert(maskPgoneStriong)

</script>

看: http://igorescobar.github.io/jQuery-Mask-Plugin/docs.html#getting-a-masked-value-programmatically


-6
投票

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

© www.soinside.com 2019 - 2024. All rights reserved.