JS вырезка опасных символов.
Извиняюсь, но час google'ния не привили к нужному результату.
Вообщем задача следующая: в поле input человек вводит URL-путь (только имя одного элемента) без домена, "/", "." и т.д., а скрипт в реально времени переводит в транслит (это без проблем), и должен вырезать опасные, а точнее не разрешенные символы, оставляя только a-z-
нужен регулярник для replace.
Заранее спасибо.
здесь есть описание символов, которых не должно быть в именах файлов. Так что заменяй все
на подчеркивание (или что угодно), а потом делай encodeURI()
Вот
Код:
<>/\:"|?*
на подчеркивание (или что угодно), а потом делай encodeURI()
через 2 минуты гугл сказал мне:
О ищущий... да найдёшь ты всё, что тебе нужно по URL'ам в RFC 3986...
[quote=RFC 3986]
2.2. Reserved Characters
URIs include components and subcomponents that are delimited by
characters in the "reserved" set. These characters are called
"reserved" because they may (or may not) be defined as delimiters by
the generic syntax, by each scheme-specific syntax, or by the
implementation-specific syntax of a URI's dereferencing algorithm.
If data for a URI component would conflict with a reserved
character's purpose as a delimiter, then the conflicting data must be
percent-encoded before the URI is formed.
reserved = gen-delims / sub-delims
gen-delims = ":" / "/" / "?" / "#" / "[" / "]" / "@"
sub-delims = "!" / "$" / "&" / "'" / "(" / ")"
/ "*" / "+" / "," / ";" / "="
.............................................
2.3. Unreserved Characters
Characters that are allowed in a URI but do not have a reserved
purpose are called unreserved. These include uppercase and lowercase
letters, decimal digits, hyphen, period, underscore, and tilde.
unreserved = ALPHA / DIGIT / "-" / "." / "_" / "~"
[/quote]
p.s: RFC слишком большое, чтобы его гуглить :D
Код:
str.replace(/[^0-9a-z-]/gim, "-")
Спасибо за ответы =)