Вы можете проверить длину совпадающего массива, и если это 1
, то это действительный ввод;
function isValid(str) { return (str.match(/abc/g) || []).length; }
Затем используйте его как:
isValid('foobar')
//=> 0 - Bad
isValid('qabce')
//=> 1 - Good
isValid('qabceabcr')
//=> 2 - Bad
Если вы хотите чистое решения регулярного выражения, то вы можете использовать это негативное опережение регулярное выражение:
/\b((?!abc)\w)*abc(?!.*abc)\w*/
RegEx Demo
((?!abc)\w)*
- отрицательный результат на основе соответствия 0 или более символов слова. Он утверждает, что следующая позиция не имеет abc
(?!.*abc)
отрицательный взгляд, который утверждает, что у нас нет другого abc
впереди в слове.
@ user2417883: Помогла ли эта работа вне дома? – anubhava