在互联网上进行一些挖掘后,我无法找到一个很好的答案,可以找到我可能用于URL片段的字符。我正在编写一个利用URL片段的javascript脚本。
我希望通过不让它看起来太复杂来使URL对眼睛友好。所以我想知道我是否可以使用像':,?,&这样的字符。要么 !'在URL片段中仍然有效。
我的网址片段应包含以下值:
答案 0 :(得分:20)
片段标识符组件可以包含:
0
- 9
a
- z
A
- Z
?
/
:
@
-
.
_
~
!
{{ 1}} $
&
'
(
)
*
+
,
;
=
后跟两个十六进制数字)在本文档中,您将找到需要了解的所有内容。
fragment identifier component is defined in section 3.5:
%
这意味着片段可以不包含任何内容或(任何组合)
/
fragment = *( pchar / "/" / "?" )
?
请参阅appendix A.了解如何定义 pchar :
pchar
所以这会增加
pchar = unreserved / pct-encoded / sub-delims / ":" / "@"
@
:
现在检查未保留的定义方式:
unreserved
这会增加
unreserved = ALPHA / DIGIT / "-" / "." / "_" / "~"
-
.
_
~
和ALPHA
检查ALPHA和DIGIT的定义方式。它们未在附录中列出,因为它们来自core ABNF rules,explained in section 1.3也是如此:
ALPHA(字母),[...] DIGIT(十进制数字)[...]
所以这会增加
DIGIT
- a
,z
- A
Z
- 0
9
检查 pct-encoded 的定义方式:
pct-encoded
这允许任何percent-encoded character。
pct-encoded = "%" HEXDIG HEXDIG
检查 sub-delims 的定义方式:
sub-delims
这会增加
sub-delims = "!" / "$" / "&" / "'" / "(" / ")" / "*" / "+" / "," / ";" / "="
!
$
&
'
(
)
*
+
,
;
答案 1 :(得分:0)
找到有效字符有点棘手,但如果你阅读得足够深,上面评论的文件确实包含了这些信息。
可用字符如下: