последний символ не должен быть пробелом в строке (Regex) - PullRequest
0 голосов
/ 07 августа 2020

Это мое регулярное выражение

^([a-zA-Z0-9 _\/-]+)$

Я хочу - буквенно-цифровые c, которые могут иметь «пробел» между и «_», «-» и «/» РАЗРЕШЕНЫ Выше регулярное выражение работает нормально

Но это регулярное выражение может заканчиваться пробелом <- "Я НЕ ХОЧУ ЭТО", поэтому я ДОБАВИЛ -> [^]

окончательное регулярное выражение

^([a-zA-Z0-9 _\/-]+[^ ])$

Теперь еще одно проблема!

РАЗРЕШЕНО - КАК Я СКАЗАЛ "/" И "-" И "_"

dfcvg/
rdftgyhujn-
rsdtfyguh_

НО ЗДЕСЬ ПОСЛЕ [^] он принимает любой специальный символ (я не хочу этого )

ftfuyf#
3245(
sdxcfhvjh?

Пожалуйста, помогите мне ^([a-zA-Z0-9 _\/-]+)$ - я не хочу, чтобы он принимал пробел, состоящий из всего или любого специального символа (кроме / -_)

1 Ответ

0 голосов
/ 09 августа 2020

Вы можете сопоставить 1 или несколько символов слова или / или - с начала строки и, при необходимости, повторить это, которому предшествует пробел.

^[\w/-]+(?: [\w/-]+)*$

См. регулярное выражение демо

const regex = /^[\w/-]+(?: [\w/-]+)*$/;
[
  "ftfuyf#",
  "3245(",
  "sdxcfhvjh?",
  "dfcvg/ test test dfcvg/",
  "rdftgyhujn-",
  "rsdtfyguh_"
].forEach(s => console.log(regex.test(s) ? `Match --> ${s}` : `No match --> ${s}`));
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...