编辑:我是正则表达式的新手。我需要一个10位移动号码的正则表达式,该号码不应该以0或1开头,并且所有10位数都不能重复相同的号码。 对不起,缺乏信息。请帮助解决这个问题。
请找到HTML代码。
<div class="col-md-2">
<label>Mobile Phone</label>
<input id="" type="text" ui-mask="(999) 999-9999" name="mobilePhone"
class="form-control"
ng-model="patientIn.addressList[0].phoneNumbers['mobile']"
ng-change="setPhoneNumber('mobile')"
ui-mask-placeholder-char="space"
model-view-value="true"/>
<p ng-show="(frmPatientEdit.$submitted && frmPatientEdit.mobilePhone.$invalid) || (frmPatientEdit.mobilePhone.$invalid && frmPatientEdit.mobilePhone.$touched)"
class="error">Mobile Phone is Invalid.</p>
答案 0 :(得分:1)
您可以使用此正则表达式检查所有数字是否相同。
(\d)
是一个捕获组,\1
匹配捕获组{9}
匹配\1
9次,您可以编辑该数字以适应。所以这会告诉你十个数字是否相同。
(\d)\1{9}
JS
text.match(/(\d)\1{9}/g);
答案 1 :(得分:1)
在您的情况下,手机号码的格式为(9999)999-9999 因此,正则表达式应该是
/\((\d)\1{3}\) \1{3}-\1{4}/.test("(9999) 999-9999")
"true"
/\((\d)\1{3}\) \1{3}-\1{4}/.test("(9999) 929-9999")
"false"
这里,正则表达式的分解说明是
\(
- &gt;匹配(在你的字符串中
(\d)
- &gt;匹配第一个整数并捕获它(以便我们以后可以反向引用它)
\1
- &gt;选择第一个捕获的元素
{3}
- &gt;检查捕获是否重复3次
(space)
- &gt;空间
\1{3}
- &gt;检查捕获是否重复3次(反向引用)
-
- &gt;检查hiphen
\1{4}
- &gt;检查捕获是否重复4次
答案 2 :(得分:0)
public class regex {
public static void main(String[] args)
{
String regex1 = "(\\d)\\1{9}";
String regex2 = "[\\d]{10}";
Scanner ssc = new Scanner(System.in);
System.out.println("enter string:");
String input = ssc.next();
System.out.println(input.matches(regex2)&&(!input.matches(regex1)));
}
}
答案 3 :(得分:0)
如果您使用诸如分隔符(-
)之类的任何格式,则可以按以下方式使用
^([2-9])(\d{2})-(\d{3})-(\d{4})(?<!(\1{3}-\1{3}-\1{4}))$
这将只允许第一位数字在[2-9]
范围内,并允许电话号码采用格式
234-234-2345
这还将检查是否通过拨出号码使用了相同的号码。
代码分解:
**1st Capturing Group ([2-9])**
Match a single character present in the list below [2-9]
2-9 a single character in the range between 2 (index 50) and 9 (index 57) (case sensitive)
**2nd Capturing Group (\d{2})**
\d{2} matches a digit (equal to [0-9])
{2} Quantifier — Matches exactly 2 times
**-**
matches the character - literally (case sensitive)
**3rd Capturing Group (\d{3})**
\d{3} matches a digit (equal to [0-9])
{3} Quantifier — Matches exactly 3 times
**-**
matches the character - literally (case sensitive)
**4th Capturing Group (\d{4})**
\d{4} matches a digit (equal to [0-9])
{4} Quantifier — Matches exactly 4 times
**Negative Lookbehind (?<!(\1{3}-\1{3}-\1{4}))**
Assert that the Regex below does not match
**5th Capturing Group (\1{3}-\1{3}-\1{4})**
This group matches with character in first group at positions where
our format number will have digits.. i.e., it matches if same
number is repeated in all positions
**$**
asserts position at the end of the string