当前位置:首页 > 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() 函数,但编码规则略有不同。

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() 会对非字母数字字符(除 @*_+-./ 外)进行编码。

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() 不同。

js escape python实现

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实现分页

实现分页的基本思路 分页功能通常需要处理数据分割、页码生成和用户交互。核心逻辑包括计算总页数、根据当前页截取数据、渲染页码按钮等。 前端分页实现(静态数据) 假设已有全部数据,仅需前端分页展示:…

js实现跳转

js实现跳转

使用 window.location 跳转 通过修改 window.location.href 实现页面跳转,这是最常用的方法。 window.location.href = 'https://…

js实现打印

js实现打印

使用window.print()方法实现打印 在JavaScript中,可以通过调用window.print()方法直接触发浏览器的打印功能。这会打开系统的打印对话框,用户可以选择打印机和设置打印选项…

js实现类

js实现类

JavaScript 实现类的几种方式 JavaScript 是一种基于原型的语言,但在 ES6 之后引入了 class 语法糖,使得实现类更加直观。以下是几种常见的实现方式: 使用构造函数 传统的…

js实现拷贝

js实现拷贝

实现文本拷贝 使用 document.execCommand 方法(已废弃但兼容性较好): function copyText(text) { const textarea = document…

js实现变形

js实现变形

使用 CSS 和 JavaScript 实现元素变形 在 JavaScript 中实现变形效果通常结合 CSS 的 transform 属性,通过动态修改该属性实现元素的旋转、缩放、倾斜或平移。 基…