JavaScript如何理解构造<!--
?从JavaScript的角度来看,除了//
和之外还有另一个评论/* */
吗?
从测试来看,似乎JavaSript <!--
就像//
是一个单行程
<script> <!-- alert('hi') //--> </script>
Run Code Online (Sandbox Code Playgroud)
什么都不做,而
<script> <!--
alert('hi') //--> </script>
Run Code Online (Sandbox Code Playgroud)
按预期工作.
这种行为记录在哪里?
这不是其他问题的重复:我不问为什么,是否或如何使用它.我正式问它在JavaScript中有什么语法和语义.这个问题非常重要,在其他问题中没有得到回答:例如,上面提到的行为无法从其他问题及其答案中猜到(实际上这是我的动机:我的程序如上所述没有单行程工作,那些问题和答案没有帮助理解为什么).
当我使用时,特殊构造的字符串的打印方式不同
print $b;
Run Code Online (Sandbox Code Playgroud)
或者
print for split //, $b;
Run Code Online (Sandbox Code Playgroud)
一个最小的例子是:
#!perl
use warnings;
use strict;
use Encode;
my $b = decode 'utf8', "\x{C3}\x{A1}\x{E2}\x{80}\x{93}\x{C3}\x{A1}"; # 'á–á' in Unicode;
print $b, "\n";
print for split //, $b
Run Code Online (Sandbox Code Playgroud)
控制台屏幕上的输出(我想我使用的是 cp860)是:
Wide character in print at xx.pl line 9.
?íÔÇô?í
Wide character in print at xx.pl line 10.
ßÔÇôß
Run Code Online (Sandbox Code Playgroud)
或十六进制:
C3 A1 E2 80 93 C3 A1
E1 E2 80 93 E1
Run Code Online (Sandbox Code Playgroud)
(0D 0A
当然由分隔,即,\r\n
)。
问题是为什么角色呈现不同?
令人惊讶的是,如果没有 em-dash,效果就会消失。对于较长的字符串,可以看到效果,如以下示例所示。
对于字符串 'Él es …
在正则表达式,在多行模式,^
并且$
代表开始和线路的端部。如何匹配整个字符串的结尾?
在字符串中
Hello\nMary\nSmith\nHello\nJim\nDow
Run Code Online (Sandbox Code Playgroud)
表达方式
/^Hello(?:$).+?(?:$).+?$/ms
Run Code Online (Sandbox Code Playgroud)
火柴Hello\nMary\Smith
。
我想知道是否有一个元字符(如\ENDSTRING
)与整个字符串的末尾匹配,而不仅仅是行,因此
/^Hello(?:$).+?(?:$).+?\ENDSTRING/ms
Run Code Online (Sandbox Code Playgroud)
将匹配Hello\nJim\nDow
。同样,一个元字符可以匹配整个字符串的开头,而不是一行。
Google API要求
Accept requests from these HTTP referrers (web sites)
Run Code Online (Sandbox Code Playgroud)
多个站点的分隔符是什么?说,是吗
*/example.com/*;*.mysite.com/*
*/example.com/*,*.mysite.com/*
*/example.com/* *.mysite.com/*
Run Code Online (Sandbox Code Playgroud)
或者我如何在这里指明多个推荐人?