小编Jac*_*ill的帖子

Javascript替换字符串中的字符*,+和/

好吧,所以我目前正在以一种简单的方式模仿PHP的urlencode()函数,使用JS的escape()和一些字符串替换.我纯粹是看键盘字符,所以没有特殊的ASCII或Unicode字符.我遇到的问题是特定字符*,+和/ all在RegExp中具有特殊含义,并且看作JavaScript String Object方法使用RegExp参数,我无法完全复制PHP的urlencode().那么,如何使用JS设法在字符串中替换这些字符呢?

背景信息:
escape()与urlencode()的差异
@::不转换,应该是%40
&:被认为是一个html实体,因此被转义为%26amp%3B而不是%26
*:未转换,应该是%2A
+:未转换,应该是%2B
/:未转换,应该是%2F
<:被认为是一个html实体,因此被转义为%26lt%3B而不是%3C
>:被认为是一个html实体,因此被转义为%26gt%3B而不是%3E

HTML实体转换非常简单

str.replace(/&amp;/g, '%26').replace(/&lt;/g, '%3C').replace(/&gt;/g, '%3E');
Run Code Online (Sandbox Code Playgroud)

并且@可以替换,因为它不是保留的RegExp字符.
*表示{0}条件
+表示{1}条件
/是基本的RegExp标记字符

感谢您的时间.

javascript replace special-characters

2
推荐指数
2
解决办法
1万
查看次数

标签 统计

javascript ×1

replace ×1

special-characters ×1