微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

用于全名和电话的 JS 正则表达式

如何解决用于全名和电话的 JS 正则表达式

你能帮我用正则表达式吗:

  1. 全名 - 可以是英语或希伯来语 [\u0590-\u05FF]-这是希伯来语字母范围。

    必须是2个或更多词, 每个单词至少包含一个字母 (不区分大小写)

示例:Roei Grin,R G,roei grin,r G,roei gr in,

“רועי גרין”、“רו ג”、רועי גרי ן”

  1. 电话号码- 必须是 10 位数字。 必须从 0 开始 可以(不是必须)在第三或第四位有“-”字符。 示例:0549129393、058-9210348、0266-391059

解决方法

这是两者的解决方案。名称和数字有很好的例子,其次是坏的例子:

const testNames = [
  'Roei Grin','R G','roei grin','r G','roei gr iN','רועי גרי ן','רו ג','רועי גרין','Bad'
];
const testNumbers = [
  '0549129393','058-9210348','0266-391059','1111','011111111','0999999-999','09999999999'
];
const nameRegex = /^[a-zA-Z\u0590-\u05FF]+( [a-zA-Z\u0590-\u05FF]+)+$/;
const numberRegex = /^0(\d{9}|\d{2}-\d{7}|\d{3}-\d{6})$/;

console.log('testNames:')
testNames.forEach(str => {
  console.log('- "' + str + '"  ==> ' + nameRegex.test(str));
});
console.log('testNumbers:')
testNumbers.forEach(str => {
  console.log('- "' + str + '"  ==> ' + numberRegex.test(str));
});

输出:

testNames:
- "Roei Grin"  ==> true
- "R G"  ==> true
- "roei grin"  ==> true
- "r G"  ==> true
- "roei gr iN"  ==> true
- "רועי גרי ן"  ==> true
- "רו ג"  ==> true
- "רועי גרין"  ==> true
- "Bad"  ==> false
testNumbers:
- "0549129393"  ==> true
- "058-9210348"  ==> true
- "0266-391059"  ==> true
- "1111"  ==> false
- "011111111"  ==> false
- "0999999-999"  ==> false
- "09999999999"  ==> false

nameRegex 的解释:

  • ^ ... $ - 字符串开头和结尾的锚点
  • [a-zA-Z\u0590-\u05FF]+ - 以 1 个以上的字母和/或希伯来语字符开头
  • ( [a-zA-Z\u0590-\u05FF]+)+ - 后跟 1+ 个模式:单个空格,后跟 1+ 个字母和/或希伯来语字符

numberRegex 的解释:

  • ^ ... $ - 字符串开头和结尾的锚点
  • 0 - 以 0 开头
  • (\d{9}|\d{2}-\d{7}|\d{3}-\d{6}) - 后跟:
    • 9 位数字
    • 或 2 位数字,-,7 位数字
    • 或 3 位数字,-,6 位数字
,

你可以使用,这个 reg exp 用于你的面具手机 - ^[0]{1}(([\d]{2}[-]{0}[\d]{7})|([\d]{3}[-]{1}[\d]{6})|([\d]{2}[-]{1}[\d]{7}))

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其他元素将获得点击?
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。)
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbcDriver发生异常。为什么?
这是用Java进行XML解析的最佳库。
Java的PriorityQueue的内置迭代器不会以任何特定顺序遍历数据结构。为什么?
如何在Java中聆听按键时移动图像。
Java“Program to an interface”。这是什么意思?