Python:如何将字符串转换为URL安全的字符串?

3phpmpom  于 2023-06-07  发布在  Python
关注(0)|答案(2)|浏览(228)

例如,我如何将其转换为:
This is a string!
变成这样:
this-is-a-string
我希望转换排除所有特殊字符,只接受字母和数字,并用-替换空格

vyswwuz2

vyswwuz21#

从技术上讲,要将字符串编码为URL安全值,您只需通过urllib的解析器运行它:

import urllib.parse
print(urllib.parse.quote(value))

但是,您要求的是自定义转换。你可以使用一些内置的字符串和正则表达式库来实现:

import re
print(re.sub("[^a-z0-9-]", "", value.lower().replace(" ", "-")))

如果您希望允许超过a-z0-9-的值“有效”,则需要扩展正则表达式。

mzillmmw

mzillmmw2#

您可以使用ES5库中的encodeURIComponent。

/**
 * Encodes a text string as a valid component of a Uniform Resource Identifier (URI).
 * @param uriComponent A value representing an unencoded URI component.
 */
declare function encodeURIComponent(uriComponent: string | number | boolean): string;

示例:

// Encodes characters such as ?,=,/,&,:
console.log(`?x=${encodeURIComponent('test?')}`);
// Expected output: "?x=test%3F"

console.log(`?x=${encodeURIComponent('шеллы')}`);
// Expected output: "?x=%D1%88%D0%B5%D0%BB%D0%BB%D1%8B"

相关问题