字符串的正则表达式验证

时间:2018-04-30 04:08:50

标签: javascript regex angular validation typescript

我使用以下代码使用RegEx验证字符串。

if(!this.validate(this.form.get('Id').value)) {
  this.showErrorStatus('Enter valid ID');
  return;
}

validate(id) {
  var  patt  =  new  RegExp("^[a-zA-Z0-9.]{1,}$");
  return  patt.test(id);
}

应该接受,

santosh.jadi
santosh.jadi.others

不应该接受,

.santosh.jadi
santosh.jadi.
santosh..jadi

任何人都可以解释一下,我错过了什么?

3 个答案:

答案 0 :(得分:0)

您可以使用/^[a-zA-Z]+[.][a-zA-Z]+$/gm

^                           // asserts position at beginning of line
  [a-zA-Z]                  // matches letters
  +                         // matches 1 or more times
  [.]                       // matches a period
  [a-zA-Z]                  // matches letters
  +                         // matches 1 or more times
$                           // asserts position at end of string



var rgx = /^[a-zA-Z]+[.][a-zA-Z]+$/gm

console.log(rgx.test('chris.zimmerman'))
console.log(rgx.test('.chris.zimmerman.'))
console.log(rgx.test('chris..zimmerman'))
console.log(rgx.test('ch3ris.zimmerman'))




如果您想允许多个点,例如chris.w.zimmerman,您可以使用^[a-zA-Z]+([.][a-zA-Z]+)+$



var rgx = /^[a-zA-Z]+([.][a-zA-Z]+)+$/gm

console.log(rgx.test('chris.zimmerman'))
console.log(rgx.test('chris..zimmerman.'))
console.log(rgx.test('chris.zimmerman.'))
console.log(rgx.test('chris.w.zimmerman'))




答案 1 :(得分:0)

正则表达式是: / ^ [a-z] +([.-]?[a-z] +)?$ /

脚本:

var text = 'abc.def';
var pattern = /^[a-z]+([\.\-]?[a-z]+)?$/;
if (text.match(pattern)) {
  print("YES!");
} else {
  print("NO!");
}

希望这可以帮助你。

答案 2 :(得分:0)

这有效^[a-zA-Z]+([\.\-]?[a-zA-Z]+)+$

if(!this.validate(this.form.get('Id').value)) {
  this.showErrorStatus('Enter valid ID');
  return;
}

validate(id) {
  var  patt  =  new  RegExp("^[a-zA-Z]+([\.\-]?[a-zA-Z]+)+$");
  return  patt.test(id);
}