Javascript 将带有可选字母前缀的输入屏蔽为电话号码格式
我知道这个不错的jquery插件: 对于屏蔽输入,我可以很好地使用它 假设我想要一个字段被以下格式屏蔽:Javascript 将带有可选字母前缀的输入屏蔽为电话号码格式,javascript,jquery,forms,input,validation,Javascript,Jquery,Forms,Input,Validation,我知道这个不错的jquery插件: 对于屏蔽输入,我可以很好地使用它 假设我想要一个字段被以下格式屏蔽:+9999999 这很好,而且很有效 问题是,有时在字段中,我的用户也可以选择在数字之前给出一些文本 因此,对用户有效的两个输入是: +99999999999 任何可选字母和特殊字符(但不是数字!)+99999999999 例如,这是一个有效的用户输入:+96614841122 这也是一个有效的用户输入:电话:+96614841122 我怎么做这个面具 编辑 对于第二种类型的输入,实际上可
+9999999
这很好,而且很有效
问题是,有时在字段中,我的用户也可以选择在数字之前给出一些文本
因此,对用户有效的两个输入是:
+999
9
999
9999
任何可选字母和特殊字符(但不是数字!)
+999
9
999
9999
+96614841122
这也是一个有效的用户输入:电话:+96614841122
我怎么做这个面具
编辑
对于第二种类型的输入,实际上可能有有限数量的字母前缀,如下所示:
- 电话:+999 9999
- 电话+999 9999
- 电话#+999 9 999
- 电话#:+999 9999
- 电话:+999 9999
- 给我打电话:+999 9999
- 致电+999 9999
- 电话+999 9999
- 电话#+999 9 999
- 电话:+999 9999
- 通话+9999999
- 联系人:+999 9999
- 联系#+999 9 999
- 联系方式:+999 9 999
Call | Contact | Talk | Phone | Telephone
,可选#
,可选:
整个面具是这样的:
optional Call | Contact | Talk | Phone |电话
optional#
optional:
+999 9999使用以下正则表达式:
var phone_mask = /^[^0-9]*\+9{3}\s9\s9{3}\s9{4}$/;
phone_mask.test("Phone: +999 9 999 9999")
phone_mask.test("Phone +999 9 999 9999")
phone_mask.test("Phone # +999 9 999 9999")
phone_mask.test("Phone #: +999 9 999 9999")
phone_mask.test("Call: +999 9 999 9999")
phone_mask.test("Call me: +999 9 999 9999")
phone_mask.test("Call +999 9 999 9999")
phone_mask.test("Telephone +999 9 999 9999")
phone_mask.test("Telephone # +999 9 999 9999")
phone_mask.test("Telephone: +999 9 999 9999")
phone_mask.test("Talk +999 9 999 9999")
phone_mask.test("Contact: +999 9 999 9999")
phone_mask.test("Contact # +999 9 999 9999")
phone_mask.test("Contact #: +999 9 999 9999")
var phone_mask = RegExp("^[^0-9]*"/* Optional non-numeric characters */ +
"\\+9{3}" /* Followed by a plus sign and three nines */ +
"\\s9" /* Followed by a space and one nine */ +
"\\s9{3}" /* Followed by a space and three nines */ +
"\\s9{4}" /* Followed by a space and four nines */ +
"$");
下面是正则表达式的注释分解:
var phone_mask = /^[^0-9]*\+9{3}\s9\s9{3}\s9{4}$/;
phone_mask.test("Phone: +999 9 999 9999")
phone_mask.test("Phone +999 9 999 9999")
phone_mask.test("Phone # +999 9 999 9999")
phone_mask.test("Phone #: +999 9 999 9999")
phone_mask.test("Call: +999 9 999 9999")
phone_mask.test("Call me: +999 9 999 9999")
phone_mask.test("Call +999 9 999 9999")
phone_mask.test("Telephone +999 9 999 9999")
phone_mask.test("Telephone # +999 9 999 9999")
phone_mask.test("Telephone: +999 9 999 9999")
phone_mask.test("Talk +999 9 999 9999")
phone_mask.test("Contact: +999 9 999 9999")
phone_mask.test("Contact # +999 9 999 9999")
phone_mask.test("Contact #: +999 9 999 9999")
var phone_mask = RegExp("^[^0-9]*"/* Optional non-numeric characters */ +
"\\+9{3}" /* Followed by a plus sign and three nines */ +
"\\s9" /* Followed by a space and one nine */ +
"\\s9{3}" /* Followed by a space and three nines */ +
"\\s9{4}" /* Followed by a space and four nines */ +
"$");
你不能屏蔽这个输入。它太复杂了(例如,
P+9661#::+96614841122
是有效的输入吗?不,那是无效的,只有字母和一些特殊字符,如
或:
。我已经编辑了这个问题。也许你只需要创建两个表单,一个用于开头文本(如电话:)第二个是带屏蔽输入的电话号码我可以,但我需要在一个字段中输入用户界面。哇,非常感谢,我刚刚看到了这个。希望这能帮助其他有同样要求的人。但我现在已经离开了那份工作^\^