CSS标识符和的(完整)有效/允许的
字符集
字符是什么?id``class
是否可以使用正则表达式进行验证?它与浏览器无关吗?
字符集无关紧要。允许的字符更重要。检查CSS规范。这里是相关的:
在CSS中,标识符(包括选择器中的元素名称,类和ID
)只能包含字符[a-zA-Z0-9]
和ISO 10646
U+00A0
及更高版本的字符,以及连字符(-
)和下划线(_
);它们不能以数字,两个连字符或连字符后跟数字开头。标识符还可以包含转义字符和任何ISO
10646字符作为数字代码(请参阅下一项)。例如,标识符"B&W?"
可以写为"B\&W\?"
或"B\26 W\3F"
。
更新
:关于正则表达式问题,您可以在这里找到语法:
ident -?{nmstart}{nmchar}*
其中包含以下部分:
nmstart [_a-z]|{nonascii}|{escape}
nmchar [_a-z0-9-]|{nonascii}|{escape}
nonascii [\240-\377]
escape {unicode}|\\[^\r\n\f0-9a-f]
unicode \\{h}{1,6}(\r\n|[ \t\r\n\f])?
h [0-9a-f]
可以将其转换为Java正则表达式,如下所示(我仅将括号添加到包含OR的部分,并转义了反斜杠):
String h = "[0-9a-f]";
String unicode = "\\\\{h}{1,6}(\\r\\n|[ \\t\\r\\n\\f])?".replace("{h}", h);
String escape = "({unicode}|\\\\[^\\r\\n\\f0-9a-f])".replace("{unicode}", unicode);
String nonascii = "[\\240-\\377]";
String nmchar = "([_a-z0-9-]|{nonascii}|{escape})".replace("{nonascii}", nonascii).replace("{escape}", escape);
String nmstart = "([_a-z]|{nonascii}|{escape})".replace("{nonascii}", nonascii).replace("{escape}", escape);
String ident = "-?{nmstart}{nmchar}*".replace("{nmstart}", nmstart).replace("{nmchar}", nmchar);
System.out.println(ident); // The full regex.
更新2 :哦,您更像是一个PHP使用者,好吧,我认为您可以确定如何/在哪里做str_replace
?
问题内容: 在精确地探究Java标识符中允许使用哪些字符时,我偶然发现了一件非常奇怪的事情,以至于几乎可以肯定这是一个错误。 我预料地发现,Java标识符合他们开始与拥有的Unicode字符属性的要求,并其次是与物业,以授予领先的下划线和美元符号例外。事实并非如此,我发现与我所听说的那种普通标识符或其他任何想法都存在极大差异。 简短演示 请考虑以下演示,证明Java标识符中允许使用ASCII ES
问题内容: 下划线似乎很好。破折号怎么办?其他特殊字符? 问题答案: 实际上,HTML和XHTML之间是有区别的。由于XHTML是XML,因此XML ID的规则适用: ID类型的值必须与Name产生的匹配。 对于HTML,适用以下条件: id =名称[CS] 此属性为元素分配名称。此名称在文档中必须唯一。 ID和NAME令牌必须以字母([A-Za-z])开头,然后可以跟任意数量的字母,数字([0-
问题内容: 我正在使用Base64编码来编码Java中的用户ID字段。 我想知道上面的字符串abc是否包含字符“,:”吗? 当以abc返回Base64编码的字符串时,它是否会包含以下字符? 问题答案: 您不会在Base64编码的字符串中看到任何逗号,冒号或双引号。由于等号用于填充结尾内容,因此您会看到等号。
我试图找到一种方法来确定一个字符串是否至少包含n个特定顺序的字符。 我正在处理大量的手写数据,错别字的数量相当疯狂。 我需要在一个大字符串中查找文本部分,如下所示: 看起来有点奇怪,但很管用。 不幸的是,怪异还不止于此。我需要修改这个regex,以便它也允许每个单词中缺少1个字母。 因此,我需要修改这个regex,以便它也适用于以下内容: 我一直在研究{4},但我不确定这是正确的方向,也不确定它是
我正在考虑从Hibernate转移到jOOQ,但我找不到例如如何在Hibernate中对这样的进行Pattern约束: 在jOOQ我该怎么做?
问题内容: 如何获得仅包含a到z,A到Z,0到9和一些符号的字符串? 问题答案: 您可以使用以下命令测试您的字符串(让): 如果需要更多符号,可以在之前添加它们