Соответствие любому символу, сопровождаемому не числами - PullRequest
0 голосов
/ 27 декабря 2018

Я не очень хорош в RegEx.Хотя это кажется очень простым, но я не могу найти способ сопоставления каких-либо символов, за которыми следуют не цифры.Я пытаюсь с негативным взглядом.Если я использую какое-либо слово, оно работает как положено, но если я пытаюсь сопоставить любой символ с квадратными скобками, оно терпит неудачу.

var pattern = /sample(?!\d)/;
console.log(pattern.test("sample324")); //false
var pattern = /[a-z]+(?!\d)/;
console.log(pattern.test("sample324")); //true but expect false

Заранее спасибо.

Ответы [ 2 ]

0 голосов
/ 27 декабря 2018

Проблема в том, что [a-z]+(?!\d) позволит ему соответствовать любым 1+ символам, за которыми не следует цифра, поэтому он будет совпадать с sampl в вашем вводе, удовлетворяя утверждению нецифровой цифры на следующей позиции.

Выможет использовать это регулярное выражение с отрицательным прогнозом:

/^(?!.+\d)/

Это не даст совпадения, если в любом месте ввода появится цифра после 1+ любого символа.

RegEx Demo

Для повышения эффективности , вы также можете использовать это регулярное выражение:

/^(?!\D+\d)/

, которое не выполняется, если существует 1+ нецифров, за которыми следует цифра где угодно на входе.

0 голосов
/ 27 декабря 2018

Я думаю, что это может работать:

var pattern = /[^0-9]/.test('mystring9')
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...