当前位置:首页 > JavaScript

js escape python实现

2026-02-03 03:50:34JavaScript

实现 JavaScript 的 escape() 函数在 Python 中的等效功能

JavaScript 的 escape() 函数用于对字符串进行编码,将非 ASCII 字符转换为 Unicode 转义序列。以下是在 Python 中实现类似功能的几种方法。

使用 urllib.parse.quote_plus

urllib.parse.quote_plus 可以对字符串进行 URL 编码,类似于 JavaScript 的 escape() 函数,但编码规则略有不同。

js escape python实现

from urllib.parse import quote_plus

def js_escape(text):
    return quote_plus(text)

# 示例
print(js_escape("Hello World 你好"))  # 输出: Hello+World+%E4%BD%A0%E5%A5%BD

自定义实现

如果需要更接近 JavaScript 的 escape() 行为,可以手动实现编码逻辑。JavaScript 的 escape() 会对非字母数字字符(除 @*_+-./ 外)进行编码。

js escape python实现

def js_escape(text):
    result = []
    for char in text:
        if char.isalnum() or char in "@*_+-./":
            result.append(char)
        else:
            result.append("%{:02X}".format(ord(char)))
    return ''.join(result)

# 示例
print(js_escape("Hello World 你好"))  # 输出: Hello%20World%20%u4F60%u597D

处理 Unicode 字符

JavaScript 的 escape() 对 Unicode 字符会转换为 %uXXXX 格式。以下是一个更接近 JavaScript 行为的实现:

def js_escape(text):
    result = []
    for char in text:
        code = ord(char)
        if code < 128 and (char.isalnum() or char in "@*_+-./"):
            result.append(char)
        elif code < 256:
            result.append("%{:02X}".format(code))
        else:
            result.append("%u{:04X}".format(code))
    return ''.join(result)

# 示例
print(js_escape("Hello World 你好"))  # 输出: Hello%20World%20%u4F60%u597D

使用 json.dumps

json.dumps 可以对字符串进行 Unicode 转义,但格式与 JavaScript 的 escape() 不同。

import json

def js_escape(text):
    return json.dumps(text)[1:-1].replace('\\u', '%u')

# 示例
print(js_escape("Hello World 你好"))  # 输出: Hello World %u4f60%u597d

注意事项

  • JavaScript 的 escape() 已被废弃,推荐使用 encodeURIComponentencodeURI
  • Python 的实现可能无法完全匹配 JavaScript 的行为,具体取决于使用场景。
  • 如果需要严格的兼容性,建议参考 JavaScript 的编码规则进行定制实现。

标签: jsescape
分享给朋友:

相关文章

js实现计算器

js实现计算器

实现基础计算器功能 使用JavaScript创建一个基础计算器需要处理数字输入、运算符逻辑和结果显示。以下是一个简单的实现示例: let currentInput = '0'; let previo…

js实现图片轮播

js实现图片轮播

实现基础图片轮播 使用HTML、CSS和JavaScript创建一个简单的图片轮播。HTML部分定义轮播容器和图片,CSS设置样式和动画效果,JavaScript处理轮播逻辑。 <div cl…

js实现日历

js实现日历

实现日历的基本思路 使用JavaScript实现日历的核心是动态生成日期表格,并处理月份切换逻辑。需要计算当前月的天数、起始星期几,并动态渲染到页面上。 获取当前日期信息 通过Date对象获取当前年…

js实现图片预览

js实现图片预览

使用FileReader API实现图片预览 通过FileReader对象读取用户选择的图片文件并显示预览: const input = document.getElementById('image…

js实现复制到剪贴板

js实现复制到剪贴板

使用document.execCommand方法(传统方式,已废弃但部分浏览器仍支持) 该方法适用于旧版浏览器,但已被标记为废弃。执行前需确保文本已被选中: function copyToClipb…

js画图实现

js画图实现

使用Canvas API绘制图形 Canvas是HTML5提供的绘图API,通过JavaScript操作Canvas元素可以绘制各种图形。以下是一个简单的示例: <canvas id="myC…