gpt4 book ai didi

JavaScript RegExp 用于电话号码验证,需要在数字之间允许连字符和空格

转载 作者:行者123 更新时间:2023-12-01 01:35:02 25 4
gpt4 key购买 nike

App.component.html

<form [formGroup]="exampleForm">
<div class="form-group">
<label>First Name</label>
<input type="text" formControlName="phoneNumber" class="form-control" >
</div>
</form>

App.component.ts

exampleForm: FormGroup;
number_pattern=' ^[0-9_-]*$ ';

constructor(private formBuilder: FormBuilder) { }

ngOnInit() {
this.exampleForm = this.formBuilder.group({
phoneNumber: ['', Validators.required, Validators.pattern(number_pattern)]
});
}

我需要具有以下规则的手机正则表达式,我尝试了正则表达式代码,但它不起作用。

  1. 字段不得为空。
  2. 数字之间接受连字符和空格,但不接受开头和结尾。
  3. 不得包含除数字、空格或连字符以外的任何内容
  4. 字段不得仅包含空格
  5. 字段不得仅包含连字符
  6. 字段不得仅包含连字符和空格。

提前致谢。

最佳答案

尝试以下模式:

^\d([0-9 -]{0,10}\d)?$

console.log(/^\d([0-9 -]{0,10}\d)?$/.test('123'));             // pass
console.log(/^\d([0-9 -]{0,10}\d)?$/.test('1-2 3')); // pass
console.log(/^\d([0-9 -]{0,10}\d)?$/.test('1-2-3-4-5-6')); // pass
console.log(/^\d([0-9 -]{0,10}\d)?$/.test('1-2-3-4-5-6-')); // fail
console.log(/^\d([0-9 -]{0,10}\d)?$/.test('123456789012')); // pass
console.log(/^\d([0-9 -]{0,10}\d)?$/.test('1234567890123')); // fail
console.log(/^\d([0-9 -]{0,10}\d)?$/.test('- --')); // fail

上面失败的三个例子是因为:

  • 1-2-3-4-5-6- 以连字符结尾,而不是数字
  • 1234567890123 有 13 位数字,太长
  • --- 仅包含连字符和空格

关于JavaScript RegExp 用于电话号码验证,需要在数字之间允许连字符和空格,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52906069/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com