gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-02 06:43:50 30 4
gpt4 key购买 nike

好吧,所以我目前正在研究一种简单的方法,用 JS 的 escape() 和一些字符串替换来模仿 PHP 的 urlencode() 的功能。我纯粹是在看键盘字符,所以没有特殊的 ASCII 或 Unicode 字符。我遇到的问题是特定字符 *、+ 和/在 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');

@可以替换,因为它不是保留的 RegExp 字符。
*代表 {0}有条件的
+代表 {1}有条件的
/是基本的RegExp标签字符

感谢您的宝贵时间。

最佳答案

有没有理由不简单地在正则表达式中使用反斜杠转义 *、+ 和/字符?

s = s.replace( /\*/g, 'star' );

关于字符串中字符 *、+ 和/的 Javascript 替换,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3632658/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com