例如,我该如何转动这个:
This is a string!
进入这个:
this-is-a-string
我希望转换排除所有特殊字符,只接受字母和数字,并用-
替换空格
从技术上讲,要将字符串编码为 URL 安全值,您只需通过 urllib 的解析器运行它:
import urllib.parse
print(urllib.parse.quote(value))
但是,您要求自定义转换。 您可以使用一些内置的字符串和正则表达式库来执行此操作:
import re
print(re.sub("[^a-z0-9-]", "", value.lower().replace(" ", "-")))
如果要允许超过a-z
、0-9
和-
为"有效",则需要扩展正则表达式。
您可以使用 encodeURIComponent 在 ES5 Lib 中。
/**
* 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"