精华内容
下载资源
问答
  • 不知道能不能实现 我要定义一个webBrowser1.DocumentText的内容我需要在这段内容头尾添上""才能让系统识别这是一个字符串,但是我填写的内容里面有""就是有双引号这个符号,这样就会造成我在读取的时候出现错误,...
  • PHP 单引号与双引号的区别(总结)

    万次阅读 2019-05-10 10:31:58
    看好多代码有时候用单引号或双引号实现包含字符串的内容,其实简单个概括下双引号中的变量可以解析,单引号就是绝对的字符串。 1、定义字符串  在PHP中,字符串的定义可以...于是,如果一个字符串由双引号开始,...

    看好多代码有时候用单引号或双引号实现包含字符串的内容,其实简单个概括下双引号中的变量可以解析,单引号就是绝对的字符串。

    1、定义字符串   

    在PHP中,字符串的定义可以使用单引号,也可以使用双引号。但是必须使用同一种单或双引号来定义字符串,如:‘Hello"和“Hello'为非法的字符串定义。    
    定义字符串时,只有一种引号被视为定义符,即单引号或双引号。于是,如果一个字符串由双引号开始,那么只有双引号被分析器解析。这样,你就可以在双引号串中包含任何其他字符,甚至单引号。下面的引号串都是合法的:
    Php代码 

    复制代码 代码如下:


    $s = "I am a 'single quote string' inside a double quote string"; 
    $s = 'I am a "double quote string" inside a single quote string'; 
    $s = "I am a 'single quote string' inside a double quote string"; 
    $s = 'I am a "double quote string" inside a single quote string';    


    而串 "Why doesn't "this" work?" 则会被分为三段。如果在这个串中想要表示出双引号,则可以使用转义符"\"(反斜线),变成 "Why doesn't \"this\" work?" 即可。

    2、字符串变量中的单、双引号  
      
    PHP允许我们在双引号串中直接包含字串变量,我们可以发现下面的两个字串的处理结果是相同的。 

    复制代码 代码如下:


    $full_name = $first_name . ' ' . $last_name; 
    $full_name = "$first_name $last_name";    


    单引号串和双引号串在PHP中的处理是不相同的。双引号串中的内容可以被解释而且替换,而单引号串中的内容总被认为是普通字符。例如: 
    Php代码 

    复制代码 代码如下:


    $foo = 2; 
    echo "foo is $foo"; // 打印结果: foo is 2 
    echo 'foo is $foo'; // 打印结果: foo is $foo 
    echo "foo is $foo\n"; // 打印结果: foo is 2 (同时换行) 
    echo 'foo is $foo\n'; // 打印结果: foo is $foo\n 
    $foo = 2; 
    echo "foo is $foo"; // 打印结果: foo is 2 
    echo 'foo is $foo'; // 打印结果: foo is $foo 
    echo "foo is $foo\n"; // 打印结果: foo is 2 (同时换行) 
    echo 'foo is $foo\n'; // 打印结果: foo is $foo\n    


    正如你所看到的,在单引号串中甚至反斜杠也失去了他的扩展含义(除了插入反斜杠\\和插入单引号\')。所以,当你想在字串中进行变量代换和包 含\n(换行符)等转义序列时,你应该使用双引号。单引号串可以用在其他任何地方,脚本中使用单引号串处理速度会更快些,因为PHP语法分析器对单引号串 的处理方式比较单纯,而双引号的处理由于串内部也需要解析,因此更复杂些,所以处理速度略慢。   
    在字符串中引用复杂的变量组合时,可能会产生一些问题,下面的代码会正常工作: 
    Php代码 

    复制代码 代码如下:


    echo "value = $foo"; 
    echo "value = $a[$i]"; 
    echo "value = $foo"; 
    echo "value = $a[$i]";    


    而下面的代码却不能得到我们希望的结果: 
    echo "value = $a[$i][$j]"; //我们希望打印二维数组$a的某个元素。    
    为避免这些字串使用中的潜在问题,我们通常把复杂的变量从字串中分离开来,就像这样:echo 'value = ' . $a[$i][$j];//字符串的连接用点(.)   
    还有一种办法是将复杂变量用花括号括起来,语法分析器就能正确辨认了: 
    echo "value = {$a[$i][$j]}" //打印二维数组$a的某个元素    

     



    3、在SQL语句中  
      
    这是会经常遇到的问题,在插入数据库的SQL语句是采用单引号来定义字符串,如果要将一个含有单引号的字符串插入数据库,这个SQL语句就会出错。 
    如:$sql="insert into userinfo (username,password) Values('O'Kefee','123456')"    
    此时,处理的方法之一是在SQL语句中加入转义符反斜线, 
    即:……Values('O\'Kefee',……    
    当然也可以使用函数 addslashes(),该函数的功能就是加入转义符, 
    即:$s = addslashes("O'Kefee") ……Values('".$s."',……    
    还有一种方法是设置php.ini中的magic-quotes选项,打开该选项,则通过表单提交的信息中如果有单引号是,将会自动加上如转义符。因此不用使用其他函数了。
    补充: 这就要从双引号和单引号的作用讲起: 双引号里面的字段会经过编译器解释然后再当作HTML代码输出,但是单引号里面的不需要解释,直接输出。 
    例如: 

    复制代码 代码如下:


    $abc='I love u'; 
    echo $abc //结果是:I love u 
    echo '$abc' //结果是:$abc 
    echo "$abc" //结果是:I love u 


    所以在对数据库里面的SQL语句赋值的时候也要用在双引号里面SQL="select a,b,c from ..." 但是SQL语句中会有单引号把字段名引出来 
    例如:select * from table where user='abc'; 
    这里的SQL语句可以直接写成SQL="select * from table where user='abc'" 
    但是如果象下面: 

    复制代码 代码如下:


    $user='abc'; 
    SQL1="select * from table where user=' ".$user." ' ";对比一下 
    SQL2="select * from table where user=' abc ' " 


    我把单引号和双引号之间多加了点空格,希望你能看的清楚一点。 
    也就是把'abc' 替换为 '".$user."'都是在一个单引号里面的。只是把整个SQL字符串分割了。 SQL1可以分解为以下3个部分 
    1:"select * from table where user=' " 
    2:$user 
    3:" ' " 
    字符串之间用 . 来连接,这样能明白了吧。 

    一、引号定义字符串 

      在PHP中,通常一个字符串被定义在一对引号中,如: 
    'I am a string in single quotes' 
    "I am a string in double quotes" 
      PHP语法分析器是用成对的引号来判断一个字符串的。因此,所有字符串必须使用同一种单或者双 
    引号来定义开始和结束。例如,下面的字串定义是不合法的: 
    "I am not a valid string since I have unmatching quote marks' 
    'Me neither!" 
      定义字符串时,只有一种引号被视为定义符,即单引号或双引号。于是,如果一个字符串由双引 
    号开始,那么只有双引号被分析器解析。这样,你就可以在双引号串中包含任何其他字符,甚至单引 
    号。下面的引号串都是合法的: 
    $s = "I am a 'single quote string' inside a double quote string"; 
    $s = 'I am a "double quote string" inside a single quote string'; 
      当PHP遇到与串的开头相对应的引号时,便认为已经到了字符串尾部,于是: 
    "Why doesn't "this" work?" 
      实际上被PHP语法分析器分成三个部分: 
    "Why doesn't "——包含一个单引号的双引号串 
    this——多余的字符,分析器无法处理 
    " work?" ——普通字符串 
      上面的这个例子企图在双引号串中包含双引号,而分析器在遇到第二个双引号时便认为字符串结 
    束了。要达到包含引号的目的,必须分析器在遇到串内普通引号的时候忽略它的原意,我们在引号的 
    前面加上一个反斜杠来告诉PHP:这个引号是字符串的一部分,正确的表示方法是这样: 
    "Why doesn't \"that\" work?" 
      在英文字符串中一个常见的问题是撇号'的使用,因为它就是一个单引号,而在英文串中十分常见 
    (英文所有格)。你必须小心处理这些字符: 
    'You\'d better escape your apostrophes' 
      可以看到反斜杠在字符串中有他的特殊含义,当我们需要在字符串中包含反斜杠本身时,需要在 
    该符号前面多加一个反斜杠。例如: 
    $file = "c:\windows\system.ini"; 
    echo $file; // 打印结果为: c:windowssystem.ini 
    $file = "c:\\windows\\system.ini"; 
    echo $file; // 打印结果为: c:\windows\system.ini 
      另一种字符串定义方式,能够消除特殊字符的烦恼,而且便于引用较长的文本。该字符串定义方 
    法以<<<符号紧跟一个自定义字符串开头,最后一行以该自定义字符串结束,并且必须顶格。 

    二、字串的连接

      字串可以使用字串连接符(.)来连接,如: 
    $first_name = 'Charlie'; 
    $last_name = 'Brown'; 
    $full_name = $first_name . ' ' . $last_name; 
      常见的用途是建立大块的HTML字串代码,赋值号 (=) 连接符 (.) 可以被简写合并为 (.=) 符 
    号,如: 
    $html = '<table>'; 
    $html .= '<tr><td>number</td><td>square</td></tr>'; 
    for ( $i=0 ; $i<10 ; $i++) { 
    $square = $i * $i; 
    $html .= '<tr><td>' . $i . '</td><td>' . $square . '</td></tr>'; 

    $html .= '</table>'; 

    三、在字串中使用变量

      这个功能让你无须使用连接符号来粘和大量的简单字符串。PHP允许我们在双引号串中直接包含字 
    串变量,我们可以发现下面的两个字串的处理结果是相同的。 
    $full_name = $first_name . ' ' . $last_name; 
    $full_name = "$first_name $last_name"; 
      单引号串和双引号串在PHP中的处理是不相同的。双引号串中的内容可以被解释而且替换,而单引 
    号串中的内容总被认为是普通字符。例如: 
    $foo = 2; 
    echo "foo is $foo"; // 打印结果: foo is 2 
    echo 'foo is $foo'; // 打印结果: foo is $foo 
    echo "foo is $foo\n"; // 打印结果: foo is 2 (同时换行) 
    echo 'foo is $foo\n'; // 打印结果: foo is $foo\n 
      正如你所看到的,在单引号串中甚至反斜杠也失去了他的扩展含义(除了插入反斜杠\\和插入单 
    引号\')。所以,当你想在字串中进行变量代换和包含\n(换行符)等转义序列时,你应该使用双引 
    号。单引号串可以用在其他任何地方,脚本中使用单引号串处理速度会更快些,因为PHP语法分析器对 
    单引号串的处理方式比较单纯,而双引号的处理由于串内部也需要解析,因此更复杂些,所以处理速 
    度略慢。 
      在字符串中引用复杂的变量组合时,可能会产生一些问题,下面的代码会正常工作: 
    echo "value = $foo"; 
    echo "value = $a[$i]"; 
      而下面的代码却不能得到我们希望的结果: 
    echo "value = $a[$i][$j]"; //我们希望打印二维数组$a的某个元素。 
      为避免这些字串使用中的潜在问题,我们通常把复杂的变量从字串中分离开来,就像这样: 
    echo 'value = ' . $a[$i][$j]; 
      还有一种办法是将复杂变量用花括号括起来,语法分析器就能正确辨认了: 
    echo "value = {$a[$i][$j]}" //打印二维数组$a的某个元素 
      这样,又出现新问题了。当我们想在字串中引用花括号字符本身时,就要记得使用转义符了: 
    $var = 3; 
    echo "value = {$var}"; // 打印结果 "value = 3" 
    echo "value = \{$var}"; // 打印结果 "value = \{3}" 

    由于转义字符对{}进行了其他处理\p{xx},不适用此例,可以如下代替:

    var_dump("value = {".$var."}") ; // 打印结果 "value = {3}" 

    三、斜杠和SQL语句 

      生成HTML代码或SQL查询语句是编写PHP程序时经常遇到而且是件有趣的事情。为什么这么说呢, 
    因为这涉及到生成另外一种类型的代码,你必须仔细地考虑和遵循这种代码所要求的编写语法和规 
    则。 
      我们来看这样一个例子,假如你想查询数据库中名字是“O'Keefe”的用户,通常SQL语句的形式 
    是这样的: 
    select * from users where last_name = 'O\'Keefe' 
      请注意SQL语句这个英文所有格(撇号)需使用反斜杠转义。PHP专门提供了一些函数来处理这样 
    的情况,函数AddSlashes($str)的用途就是自动在字串中对引号字符插入反斜杠转义符: 
    $last_name = "O'Keefe"; 
    $sql = "select * from users where last_name = '" . addslashes($last_name) . "'"; 
      在这个例子中,你还要在last_name字串外面括上单引号(SQL语法要求),由于这里使用的是双 
    引号串,所以对这对单引号就无须使用转义了。下面的这个语句是使用单引号串的等价形式: 
    $sql = 'select * from users where last_name = \'' . addslashes($last_name) . '\'';
      任何时候你要在数据库中写入字串,你都必须确保里面的引号正确使用了转义符号,这是很多PHP 
    初学者常犯的错误。 

    四、双引号和HTML 

      与SQL语句不同,在标准HTML语言中双引号常被用来表示字串(现在很多浏览器具备较强的容错功 
    能,允许在HTML中用单引号甚至不用引号表示字符串),例如: 
    $html = '<a href="'.$url.'">'.$link.'</a>'; 
    $html = "<a href=\"$url\">$link</a>"; 
      HTML语言不支持反斜杠转义,这一点在我们使用表单的hidden inputs来传输数据的时候就会有所 
    体会了。设置hidden inputs的值的最好办法,是使用htmlspecialchars()函数来编码。下面的语句可 
    以正常传输一个可能包含双引号的数据: 
      <input type=hidden name=var value="<?php echo htmlspecialchars($var) ?>"> 

    一、引号定义字符串。要达到包含引号的目的, 必须分析器在遇到串内普通引号的时候忽略它的原意,我们在引号的 前面加上一个反斜杠来告诉PHP:这个引号是字符串的一部分,正确的表示方法是这样:单引号串可以用在其他任何地方,脚本中使用单引号串处理速度会更快些,因为PHP语法分析器对 单引号串的处理方式比较单纯,而双引号的处理由于串内部也需要解析,因此更复杂些,所以处理速 度略慢。

    这个...双引号转义,单引号不转义 
    如:/r/n是换行,但是如果你用单引号写入文件,不会是换行,而是一个字符,如果用双引号写入文件,就是换行. 
    同意。

    ------------------------------------------------------------------------------------------------------------------------------------------------------------------------

      php里的单引号把内容当成纯文本,不会经过服务器翻译。而双引号则与此相反。里面的内容会经过服务器处理(process). 举个简单的例子:

     

    $foo="data";

    echo '$foo';                        //单引号输出$foo

    echo "$foo";                        //双引号输出data

     

     单引号不能处理变量和转义字符(除了\\和\'这两个),要输出下面的字符串

     

         what's my name?

     

    可以这么来写:

       

          echo "what's my name?";  //最简单的写法,单引号和双引号不产生冲突(conflict)

          echo 'what\' my name?';  用斜杠转义

       正如你所看到的,在单引号串中甚至反斜杠也失去了他的扩展含义(除了插入反斜杠\\和插入单引号\')。所以,当你想在字串中进行变量代换和包 含\n(换行符)等转义序列时,你应该使用双引号。单引号串可以用在其他任何地方,脚本中使用单引号串处理速度会更快些,因为PHP语法分析器对单引号串 的处理方式比较单纯,而双引号的处理由于串内部也需要解析,因此更复杂些,所以处理速度略慢

    写一个windows无效文件名替换函数。(windows文件名无效字符有9个:

    / 去掉文件名中的无效字符,如 \ / : * ? " < > | 

    复制代码

    function replaceBadChar($fileName)
    {
        // 去掉文件名中的无效字符,如 \ / : * ? " < > | 
        $fileName=str_replace('\\','_',$fileName);
        $fileName=str_replace('/','_',$fileName);
        $fileName=str_replace(':','_',$fileName);
        $fileName=str_replace('*','_',$fileName);
        $fileName=str_replace('?','_',$fileName);
        $fileName=str_replace('"','_',$fileName);
        $fileName=str_replace('<','_',$fileName);
        $fileName=str_replace('>','_',$fileName);
        $fileName=str_replace('|','_',$fileName);
        return $fileName;
    }
    $str='\/:*?"<>|';
    echo replaceBadChar($str);

    复制代码

    最开始我把他们都用反斜杠转义了,结果只输出前1个,因为只有反斜杠和单引号需要在单引号中转义,其他都不需要

    还有一点的是,str_replace只是简单的字符串替换,与正则无关,所以上面的改成双引号也是ok的

     

    如果要输出含有变量的字符串时就必须小心点,否则很可能产生错误。

       

         $email=$_POST['email'];

     

    现在要输出this is your  email $email;可以有两个方式

     

      echo "this is your email $email";  //双引号服务器会自动解析

      echo 'this is your email'.$email; //用连字符和纯字符串和变量链接起来

     

      一旦涉及到Mysql中的sql语句,就更得小心了。从简单说起,sql语句,其中的条件是常量

           

           SELECE *  FROM  email_table WHERE username="abc";

     

    php中可以写成

           $query="SELECE * FROM  email_table WHERE username='abc'";//query语句一定要用双引号括起来

     

    假设查询的条件是变量,如$abc=$_POST['username'];

    可以写成

                $query="SELECT * FROM email_table WHERE  username=' ".$abc." ' ";

     

    可以分成几步理解:

    1."SELECT * FROM email_table WHERE  username=' " 纯字符串

    2. .连接符,用来链接后面的字符

    3.$abc 显示变量的值

    4.." ' "连字符链接后面的单引号(为了与条件中的第一个单引号配对)

    其实不必这么复杂,可以这么写

    $query="SELECT * FROM email_table WHERE username='$abc' ";

    可以这么理解,双引号内部的全都要被服务器解析,单引号只是当成普通字符而已.

     

    再复杂一点

    $user=array (”name”=> $_REQUEST['user_name‘,"age"=>$_REQUEST['age'];//

    $abc=array("name"=>$_POST['username'],"age"=>$_POST['age']);

    $abc为数组变量,则写成

    $query="SELECT * FROM email_table WHERE username=' " .$abc["name"]." ' ";

     

          最后需要说明的是,很多人以为单引号不能包含双引号,这是错误的。就个简单的例子,输出html语句,

     

    echo ' <input type="text" name="email" id="email" /> '; 

       

       html包含很多的双引号使用,可以用单引号包含起来,是没有问题的 。双引号虽好,能包含变量和转义字符,但是效率比单引号低,能用单引号的尽量用单引号,不可忽略的是,要注意区分英文和中文引号(dreamweave包含字符串时会高亮显示,中文则不会)。

      单引号里面的双引号中的变量不会解析! 

     

    一.首先想想PHP里所有的单词(其实应该叫符号)有几类.

    1.PHP,mysql两方的关键词与函数.例如echo,print,mysql_connect等等.这些肯定不加引号的.

    2.常量.新手可能用得不多,常量的好处是全局性,穿透函数.速度也快些不过新手可以暂时不管常量这玩意儿.

    3.变量.前面带"$"号的就是变量.可以为变量设一个"值",例如一串字符,一个数字,逻辑(真/假)值等.也可以表示一组值(数组,对象等)

    4.值.通常要给常量与变量设置值.赋值语句$a=\'abc\'中,右边的\'abc\'即为值.

    5.函数的参数(在括号里的).可以是常量,变量,值三种.

    变量(常量)与值的关系正如下列各种情况.

    "颜色"与"红",

    "长度"与100,

    "日期"与2007年10月25号"

    二.什么情况下用PHP引号

    其实只有第4项"值"需要用到引号,函数的里也只有值要用引号.并且只有字符串(日期值可以当成字符串)内容需要用到引号.数字(可用可不用),真假(不能用)例外.

    例子

    三.单引号与双引号的区别

    一般情况下两者是通用的.但双引号内部变量会解析,单引号则不解析.

    例子

    所以如果内部只有纯字符串的时候,用单引号(速度快),内部有别的东西(如变量)的时候,用双号引更好点.

    四.字符串内部如果出现PHP引号怎么办--关于转义.

    比如我们想输出: 我"是\'天才

    这时候就必须用到转义了.转义即把本来有作用的符号转成无意义的字符.

    这样就正常了,因为号把它后面的任何字符都转成无意义的符号.在这里来说,PHP解析器根本没把号后面的引号当成引号来看待.

    同样的,还可以转义分号,$符号等特殊符号.

    五.字符串的连接.

    这是个麻烦的问题.一般来说,变量值,直接包含在双引号中就可以了.另外字符串的叠加用"."字符.

    在复杂的情况里可以用大括号来包含,PHP便知道这是一个完整的东西,里面的引号不会影响到外面的引号关系.

    与html的混合也很简单,最好养成HTML中全部用双引号,PHP中尽量用单引号的习惯.这样方便把大段的HTML代码复制过来,只要头尾加上单引号就是一个正确的字符串了.几百行的HTML代码也不用担心PHP引号错乱.

    总结一下PHP引号使用原则

    1.字符串的值用引号

    2.PHP中尽量用单引号,HTML代码全部用双引号

    3.在包含变量的时候,用双引号可以简化操作

    4.复杂的情况下用大括号包起来

    PHP引号还有一个用处就是,有的时候需要用php生成文本文件,换行符\n需要用双引号才能好使,单引号则会直接把\n当成字符输出。

    展开全文
  • JavaScript中的单引号的双引号

    千次阅读 2018-04-11 15:36:05
    更多文章 访问我的博客:http://www.caoyong.xin:8080/bloggerJavaScript中的单引号和双引号今天来聊聊单引号和双引号在JavaScript中的使用,做web的经常会在HTML中或者JavaScript中拼接字符串,这时候就会用到...

    更多文章 访问我的博客:http://www.caoyong.xin:8080/blogger

    JavaScript中的单引号和双引号

    今天来聊一聊单引号和双引号在JavaScript中的使用,做web的经常会在HTML中或者JavaScript中拼接字符串,这个时候就会用到单引号与双引号混合使用,如果使用不当还会造成意想不到的bug。


    单引号和双引号都可以作为字符串的开始符和关闭符,并且只能‍同一种单或者双引号来定义开始和结束;

    在同一种引号中使用相同的引号,需要转义后才能使用。不同引号可以嵌套使用。



    下面就来聊一聊这些小细节。

    首先,描述一下,具体的应用场景。

    第一:从后台界面传递的数据在HTML或者jsp页面展示的时候,我们可能把这些数据直接展示,又或者以变量的形式传递给js函数

    第二:我们用到ajax的时候,从后端异步获取数据,需要把这些数据结合HTML标签CSS属性拼接在一起,然后斧子给某个标签在页面上展示


    具体来说一些这些应用场景。

    第一:在HTML或者Jsp中使用

    有一个需求,在后台传递一个List集合的数据将要在前台页面展示

    QQ截图20180411135326.png

    前台页面

    QQ截图20180411135425.png

    我们看οnclick="test('${str}')"我们给js函数test()需要传递一个参数,这个时候就需要用到双引号中嵌套单引号,为什么要加上单引号,那是因为我们传递的是一个字符串所以要加上单引号(如果是数字可以不加,但是有的时候会出现问题,下面会提到,所以最好都要加上引号),你可能会说,如果加上双引号了?可以加双引号但是前提你要使用转义字符的双引号才可以


    使用浏览器的开发者模式查看代码

    QQ截图20180411140216.png

    就可以看到双引号中嵌套双引号了


    你可能想说我们一般的转义不就是加上反斜杠(\)不就可以了吗?

    但是在HTML,却不可以,要使用转义字符才可以。

    单引号的转义字符 &apos;

    双引号的转义字符&quot;


    既然提到了这,我就说一个我遇到的一个相关问题,只这样的又一次我将32位的UUID传递给js函数,但是却给我返回的是科学计数法,TMD,这个问题搞了我半天。

    QQ截图20180411141936.png

    结果:

    QQ截图20180411142022.png

    加上单引号以后就正常了。


    第二:在JavaScript中使用

        最多的就是使用Ajax异步获取数据,拼接字符串。

        场景复原

        首先我们通过Ajax获取后台数据是一个list的集合数据接下来我们要在js中循环遍历这个list,然后拼接字符串,最后将字符串赋值给一个div进行页面展示

    js代码展示

    QQ截图20180411150514.png

    网页源码展示

    QQ截图20180411150549.png


        下面我们就来解释一下

        html += "<a href='' οnclick='show(\""+data[i]+"\")'>"+data[i]+"</a><br>";

        首先我们可以看到有一个html的变量用于存放拼接字符串,最外层有一个双引号(也可以是单引号),在第一层里面我们用的都是单引号,如href=''

    οnclick='',(我说的是第一层),这里也就说明了,为什么同种引号内不能使用同种引号(指的是父子关系),可以嵌套使用,比如 双引号中使用单引号,然后单引号中在使用双引号。这是允许的。

     

         接下来我们看οnclick='show(\""+data[i]+"\")'

        \" 表示转义双引号,后面又跟了一个双引号是与最开始的双引号呼应,"<a href='' οnclick='show(\""是个字符串而字符串的内容就是

        <a href='' οnclick='show(\"后面的data[i]就是另一个字符串,我们知道字符串的拼接需要用加号连接,所以这里也就好理解为什么要在data[i]两边加上加号了。再到后面"\")'>"又是一个字符串内容是\")'。接着后面"</a><br>";是一个字符串。而"</a><br>""<a href='' οnclick='show(\""+data[i]+"\")'>"之间的data[i]需要用两个加号拼接前后的字符串。


    说到这里总则要记住上面提到的规则,那么我们在面对单引号或者双引号拼接字符串的时候就会得心应手了!。


    展开全文
  • 在使用Python的过程中,一直在记着input中使用单引号,print中使用双引号,还经常搞混,但今天在print中无意间搞错发现结果竟然是一致的。 其中自定义的alpha,beta,gamma为三角形的三角,运行后的输出结果...

    在使用Python的过程中,一直在记着input中使用单引号,print中使用双引号,还经常搞混,会出错,

    name = input('请输入你的姓名:')
    print("你好,", name)
    you_age = input('请输入你的出生年份:')
    age = 2020-int(you_age)
    print("你好,", name, ",你今年", age, "岁了。")

    结果正常,如下:

    但是仅改变最后输出的双引号为单引号,就会报错

    但今天在print中无意间搞混单引号和双引号后,发现结果竟然是一致的。

    其中自定义的alpha,beta,gamma为三角形的三个角,运行后的输出结果显示一致,

    然后又重新回去看了上一个题,尝试换了引号中的中英文逗号,句号,然后忽然发现了问题,源代码如下:

    其中报错在第二个print语句中,不知大家是否看出来了区别。

    对,没错,就是第二句print中的引号的中英输入法问题,导致标识符中的字符无效。

    在网上搜索查看了单引号和双引号的解释,发现不仅基本通用,而且还有很多人性化、方便的地方。

     

    下面的解释不错,在此分享给大家。

    原文链接地址:https://blog.csdn.net/kevindree/article/details/86796664

    在Python当中表达字符串既可以使用单引号,也可以使用双引号,那两者有什么区别吗?

    简单来说,在Python中使用单引号或双引号是没有区别的,都可以用来表示一个字符串。但是这两种通用的表达方式,除了可以简化程序员的开发,避免出错之外,还有一种好处,就是可以减少转义字符的使用,是程序看起来更简洁,更清晰。

    举个两个例子:

    1、包含单引号的字符串

    假如你想定义一个字符串my_str,其值为: I'm a student,则可以采用如下方式,通过转义字符 \ 进行定义

    my_str = 'I\'m a student'
    也可以不使用转义字符,利用双引号直接进行定义

    my_str = "I'm a student"


    2、包含双引号的字符串

    假如你想定义一个字符串my_str,其值为: Jason said "I like you" ,则可以采用如下方式,通过转义字符 \ 进行定义

    my_str = "Jason said \"I like you\""
    也可以不使用转义字符,利用单引号直接进行定义

    my_str = 'Jason said "I like you"'
    通过这种方式,在合适的场景下采用单引号,或者双引号,是不是可以非常有效的避免转义字符的使用,并且可以使代码看起来更加的简洁清晰,易懂呢?

    除此以外,下面这篇还解释了三单引号和三双引号的区别

    https://blog.csdn.net/JohnyHe/article/details/83461266?depth_1-utm_source=distribute.pc_relevant_right.none-task&utm_source=distribute.pc_relevant_right.none-task

    ------------------------------------------------------------------------手动分割线------------------------------------------------------------------------

    来补充一些容易出错的引号使用的问题:

    1.在字符串类型中,单引号、双引号和三引号(''' '''或者"""  """)作用基本相同,但是三引号可以换行。

    2.特殊字符的处理:

    (1)控制字符,用转义字符表示。比如,要输出路径E:\Python\2016\Ch2,则print('E:\\Python\\2016\\Ch2')

    (2)字符串本身含有引号的处理:

    a.字符串含有单引号,则用双引号括住;

    b.字符串含有双引号,则用单引号括住;

    c.两种都有时,采用三引号,但是不能有歧义,如下面的例子里给出的最后一种三引号和双引号在一起就会报错。

    所以除了三引号外,更一般的做法是采用\'或\"进行转义,根据最外面句子的引号是双引号或者单引号来变化。

    (3).非转义字符的处理:

    当要输出的字符串本身包含\,其后面的内容又会被当做转义字符操作时(如\n,\t),采用r"或R",不进行转义。

    要输出的内容部分需要转义,部分不需要转义时采用+连接两部分内容。

    展开全文
  • c语言中双引号和单引号In C you might find yourself using double quotes in some cases, and single quotes in other cases. 在C中,您可能发现自己在某些情况下使用双引号,而在其他情况下使用单引号。 In ...

    c语言中双引号和单引号

    In C you might find yourself using double quotes in some cases, and single quotes in other cases.

    C中,您可能发现自己在某些情况下使用双引号,而在其他情况下使用单引号。

    In some languages, there’s no difference between the two. But in C, there is difference, and you’ll use one vs the other depending on the need.

    在某些语言中,两者之间没有区别。 但是在C语言中,存在差异,您将根据需要使用一个与另一个。

    When can you use single quotes and when can you use double quotes?

    什么时候可以使用单引号,什么时候可以使用双引号?

    Single quotes are used to identify a single character (char value):

    单引号用于标识单个字符( char值):

    char letter = 'a';

    Double quotes are used to create a string literal:

    双引号用于创建字符串文字:

    char *name = "Flavio";

    Note that you can create a single-letter string literal:

    请注意,您可以创建一个单字母字符串文字:

    char *letter = "a";

    But remember that a string is composed by the characters of the string, plus a 0 character at the end, which makes single-letter string literals take double the space of a single character.

    但是请记住,字符串是由字符串的字符组成的,最后是一个0字符,这使得单字母字符串文字占用的空间是单个字符的两倍。

    翻译自: https://flaviocopes.com/c-quotes/

    c语言中双引号和单引号

    展开全文
  • Mybatis中单双引号引发的惨案

    千次阅读 2019-09-03 23:15:09
    #{}与${}的区别 #{}是预编译处理,${}是字符串替换Mybatis在处理#{}时,会将sql中的#{}替换为?号, 调用PreparedStatement的set方法来赋值;...再通俗的说,使用${}mybatis会把参数加上双引号,而${} 你给啥,sql语...
  • sql 语句哪里添加单引号问题,哪些地方必须加双引号,否则sql语句会报错? INSERT INTO table_name ( field1, field2,…fieldN ) VALUES ( value1, value2,…valueN ); 如果数据是字符型,必须使用单引号或者双引号...
  • python3进行输出的时候 我们经常会遇到很多引号的问题,有时候引号不一样显示的内容也会不...反斜杠用法在字符串大多数只有两用法  ①转移符 如'i \'m a student '  ②换行符 如print(‘aaaaaaaaa\ aaaaaaaaaaaaaa
  • 中使用editable时候,多单引号、双引号嵌套,导致差一点推翻重新开始其他思路了 最后使用这符号解决了问题 flyings.fxbusiness.setGoodsValue('[{"brand":"1a","name":"2b","model":"3c","quantity":41,...
  • SQL语句中单引号和双引号

    千次阅读 2019-05-03 20:31:16
    文章目录、SQL语句分析(建议sql语句粘贴出来看)二、在Java变量中如何无误速写sql语句三、在Java变量写SQL语句最优解文章最后,如果有什么疑问或者问题欢迎留言。 、SQL语句分析(建议sql语句粘贴出来看) ...
  • 今天遇到一个问题 awk 如何打印单引号和双引号 [root@localhost~]#echo|awk'{print"\""}' " or [root@localhost~]#echo|awk'{print"\x22"}' " [root@localho...
  • js中单引号和双引号的使用区别

    千次阅读 2018-12-28 18:14:34
    最近在项目中写js脚本时,发现firebug经常会报多一单引号或者多一个双引号这种低级错误。但是要是搞不清这两者,你就会把复杂的字符串拼接搞的乱七八糟、错误百出。 2.项目中的场景 使用ajax异步提交数据之后,.....
  • oracle单引号和双引号的区别

    千次阅读 2016-10-08 17:20:00
    双引号的作用:关键字,对象名、字段名加双引号,则示意 Oracle将严格区分大小写,否则Oracl都默认大写。 1.双引号引住关键字 select "sysdate" from dual;等同于select sysdate from dual;  如下则不会输出...
  • 先说结论:想显示单引号,外层就用双引号,想显示双引号,外层就用...可以看到,它把这个我本来用作转义的双引号当成一个输入流的结束了!于是我又试了一下用双引号作为外层的引号,最后成功输出: 于是我又想到,双引
  • shell脚本中单引号和双引号

    千次阅读 2017-01-13 11:39:46
    shell脚本中的单引号和双引号一样都是字符串的界定符,而不是字符的界定符。单引号用于保持引号内所有字符的字面值,即使引号内的\和回车也不例外,但是字符串中不能出现单引号。(注意是所有,只是单引号本身不能够...
  • 字符串处理--去除首尾双引号

    千次阅读 2020-09-11 17:50:30
    使用shell脚本处理带有双引号的文本 问题描述: 数据示例 "{""_index"":""uke_device_open_app_index"",""_type"":""open_app_device"",""_id"":""nygsGXIBbmK7t34354CI"",""_score"":1,""_source"":{""accessToken...
  • jdbc字符串拼接单引号和双引号问题

    千次阅读 2019-08-20 16:32:35
    学习Jdbc时,碰到了字符串拼接的问题,对于单引号和双引号什么时候用不是太明白,特此写篇博客记录一下。 eg: String sql="select * from users where "+"username='"+username+"' and password='"+password+"'"; ...
  • 本文详解讲解Python 单引号、双引号、三单引号、三个双引号的区别与联系
  • 在bash shell基本语法之特殊变量的使用的一些示例中,使用echo输出一些字符串的时候,既使用了单引用也用了双引号,这篇博文简单说下这两的区别,顺便说下倒引号的用法 单引号与双引号 在使用echo输出字符串的...
  • 截取以双引号内的多字符串

    千次阅读 2018-04-25 09:04:15
    值得注意的是要考虑到如果最后一个字符串为空,当你去除尾部的双引号时,程序会认为没有这个字符,即如果字符串为"","BBBBB","",当进行了去除收尾字符的操作后,程序的最终结果会变成"","BBBBB",即最后一个空...
  • 1、首先从本质上来说你在js或者jquery中使用单引号或者双引号是没有区别的,都可以成功被解析,但是关键在于有很多场景我们进行字符串拼接时会同时使用单引号和双引号这个时候要遵循一个原则:要成对嵌套使用,外层...
  • 如果该数是奇数就输出“odd”,偶数就输出“even”(输出不含双引号)。 样例输入 Copy 8 样例输出 Copy even输入一个整数,判断该数是奇数还是偶数。 输入 输入整数n。 输出 如果该数是奇数...
  • Eclipse如何快速选中字符并添加双引号自定义Eclipse的模板快速选中字符并添加引号构建Eclipse模板总结 自定义Eclipse的模板快速选中字符并添加引号 在使用Eclipse的过程中,提供了许多的快捷键供我们使用,但是令我...
  • C语言中的双引号用来表示字符串字面量 例如:  'a'表示字符字面量,占1字节,'a' + 1表示 'a'的ASCII码加1,结果为'b'  "a"表示字符串字面量,占两字节,"a" + 1表示指针运算,结果...
  • ,Python中的print函数 Python中print函数用法: print(“hello world!”) hello world! print(5+8) 13 print(“I love” + “you!”) I loveyou!...二,单引号,双引号 ...可以看出双引号
  • 一直以来对shell中字符串的了解就是单引号和双引号内的都是字符串,双引号内字符串可以被替换成变量,单引号就是原字符串输出,今天在开发一个hdfs跨集群拷贝数据脚本时候发现shell echo出来同样的命令手动执行可以...
  • js中单引号和双引号

    千次阅读 2016-03-24 18:53:20
    知乎 ... 提问 ...JavaScript 中字符串变量使用单引号和双引号的利弊?...最近在做一些规范的工作,这点没想明白,到底单引号和双引号有啥利弊,为什么有的规范推荐双引号,我个人习惯了使用单引号。 纯json我
  • 单、双引号是英文的:‘‘和"",三引号则是三单引号或者三个双引号都可以:""" “”"或者’’’ ‘’’,在python中打出来时没有顺序之分(其实也看不出来顺序…),在一对引号的中间打上东西就是字符串,例如: ...
  • 双引号中引入变量

    千次阅读 2018-03-23 15:02:30
    String username = request.getParameter("username"); String content = request.getParameter("content"); out.println("...无论双引号还是单引号都是成对出现,那么在成对的里面无...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 154,902
精华内容 61,960
关键字:

双引号最后一个