Проверка правильности регулярного выражения для строки - PullRequest
0 голосов
/ 30 апреля 2018

Я использую приведенный ниже код для проверки строки, используя 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 голосов
/ 30 апреля 2018

Регулярное выражение будет: /^[a-z]+([.-]?[a-z]+)?$/

Сценарий:

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

Надеюсь, это поможет вам.

0 голосов
/ 30 апреля 2018

Это работает ^[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);
}
0 голосов
/ 30 апреля 2018

Вы можете использовать /^[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'))
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...