Хорошо, поэтому в настоящее время я работаю над упрощенным способом подражания функции urlencode() с помощью JS's escape() и некоторой замены строки. Я просто смотрю на клавиатурные символы, поэтому нет специальных символов ASCII или Unicode. Проблема, с которой я сталкиваюсь, заключается в том, что конкретные символы *, + и/все имеют специальные значения в RegExp, и, увидев, что методы JavaScript String Object используют параметры RegExp, я не могу полностью реплицировать urlencode() PHP. Таким образом, как можно выполнить замену этих символов в строке с помощью JS?Javascript заменяет символы *, + и/внутри строки
Справочная информация:
побег() расхождения с UrlEncode():
@
: не преобразованные, должно быть %40
&
: считается HTML сущность, таким образом экранированы, как% 26amp% 3B, а не %26
*
: не конвертируются, должны быть %2A
+
: не конвертируются, должны быть %2B
/
: не конвертируются, должно быть %2F
<
: считается HTML сущность, таким образом экранированы, как% 26lt% 3B, а не %3C
>
: считается HTML сущность, таким образом экранированы, как% 26gt% 3B, а не %3E
HTML-сущности преобразования, как просто как
str.replace(/&/g, '%26').replace(/</g, '%3C').replace(/>/g, '%3E');
и @
может быть заменен, так как это не является зарезервированным RegExp характер.
*
представляет {0}
условного
+
представляет {1}
условного
/
является основным персонажем RegExp тега
Спасибо за ваше время.
Почему бы не использовать встроенную функцию encodeURIComponent() JavaScript? http://www.w3schools.com/jsref/jsref_encodeuricomponent.asp –