Ali*_*xel 30 css regex validation
什么是(全)有效/允许的字符集为CSS标识字符id和class?
是否有可用于验证的正则表达式?浏览器不可知吗?
Bal*_*usC 46
charset并不重要.允许的角色更重要.检查CSS规范.这是一个相关的引用:
在CSS中,标识符(包括选择器中的元素名称,类和ID )只能包含字符
[a-zA-Z0-9]和ISO 10646字符U+00A0及更高字符,以及连字符(-)和下划线(_); 它们不能以数字开头,也不能以数字后跟连字符开头.标识符还可以包含转义字符和任何ISO 10646字符作为数字代码(请参阅下一项).例如,标识符"B&W?"可以写为"B\&W\?"或"B\26 W\3F".
更新:关于正则表达式问题,你可以在这里找到语法:
ident -?{nmstart}{nmchar}*
Run Code Online (Sandbox Code Playgroud)
其中包含的部分:
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]
Run Code Online (Sandbox Code Playgroud)
这可以转换为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.
Run Code Online (Sandbox Code Playgroud)
更新2:哦,你更像是一个PHP,我认为你可以知道如何/在哪里做str_replace?
| 归档时间: |
|
| 查看次数: |
14210 次 |
| 最近记录: |