CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
花落谁家,你作主! 盛大widget设计大赛英雄榜
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  Web 开发 >  JavaScript

怎么取出一个字符串左边的n个字符?

楼主Ailong(专家分好难挣啊)2001-05-22 14:33:00 在 Web 开发 / JavaScript 提问

问题点数:40、回复次数:9Top

1 楼playyuer(退休干部 卧鼠藏虫)回复于 2001-05-22 14:38:00 得分 10

substring   方法  
  返回位于   String   对象中指定位置的子字符串。    
   
  strVariable.substring(start,   end)  
  "String   Literal".substring(start,   end)  
   
  参数  
  start  
   
  指明子字符串的起始位置,该索引从   0   开始起算。  
   
  end  
   
  指明子字符串的结束位置,该索引从   0   开始起算。  
   
  说明  
  substring   方法将返回一个包含从   start   到最后(不包含   end   )的子字符串的字符串。  
   
  substring   方法使用   start   和   end   两者中的较小值作为子字符串的起始点。例如,   strvar.substring(0,   3)   和   strvar.substring(3,   0)   将返回相同的子字符串。    
   
  如果   start   或   end   为   NaN   或者负数,那么将其替换为0。    
   
  子字符串的长度等于   start   和   end   之差的绝对值。例如,在   strvar.substring(0,   3)   和   strvar.substring(3,   0)   返回的子字符串的的长度是   3。    
   
  示例  
  下面的示例演示了   substring   方法的用法。  
   
  function   SubstringDemo(){  
        var   ss;                                                   //   声明变量。  
        var   s   =   "The   rain   in   Spain   falls   mainly   in   the   plain..";  
        ss   =   s.substring(12,   17);       //   取子字符串。  
        return(ss);                                           //   返回子字符串。  
  }  
   
   
  ===============  
  substr   方法  
  返回一个从指定位置开始的指定长度的子字符串。  
   
  stringvar.substr(start   [,   length   ])  
   
  参数  
  stringvar  
   
  必选项。要提取子字符串的字符串文字或   String   对象。  
   
  start  
   
  必选项。所需的子字符串的起始位置。字符串中的第一个字符的索引为   0。  
   
  length  
   
  可选项。在返回的子字符串中应包括的字符个数。  
   
  说明  
  如果   length   为   0   或负数,将返回一个空字符串。如果没有指定该参数,则子字符串将延续到   stringvar   的最后。  
   
  示例  
  下面的示例演示了substr   方法的用法。  
   
  function   SubstrDemo(){  
        var   s,   ss;                                 //   声明变量。  
        var   s   =   "The   rain   in   Spain   falls   mainly   in   the   plain.";  
        ss   =   s.substr(12,   5);     //   获取子字符串。  
        return(ss);                               //   返回   "Spain"。  
  }  
  Top

2 楼Ailong(专家分好难挣啊)回复于 2001-05-22 14:42:00 得分 0

如果其中有中文怎么处理?不会把中文给“拆”了吧?Top

3 楼net_lover(【孟子E章】)回复于 2001-05-22 14:50:00 得分 0

不会!Top

4 楼net_lover(【孟子E章】)回复于 2001-05-22 14:52:00 得分 10

<script>  
  function   SubstringDemo(){  
        var   ss;          
        var   s   =   "十分山豆根发射点十分山豆根发射点十分山豆根发射点十分山豆根发射点十分   ";  
        ss   =   s.substring(0,   17);  
        alert(ss);    
  }  
   
   
  </script>  
  <a   href=#   onclick="SubstringDemo()">测试</a>Top

5 楼Ailong(专家分好难挣啊)回复于 2001-05-22 15:15:00 得分 0

我想不论字符串是什么内容,截取的长度都一样,又该怎么做?(比如两个英文字母折合一个中文字符。取10个中文长度)Top

6 楼whb959358(无名)回复于 2001-05-23 22:29:00 得分 0

substr(0,n),n是长度无论是中文还是西文。Top

7 楼cymlx(^愉快^)回复于 2001-05-24 02:09:00 得分 10

用VBSCRIPT写一函数来实现  
  在JAVASCRIPT中调用该函数  
  在VBSCRIPT中有如下两函数:LEN()与LENB()若通过这两函数算出的值一致  
  则为英文字串否则为中文字串  
  写得稍为复杂一些就可完成“我想不论字符串是什么内容,截取的长度都一样,”的功能  
  我已在多个系统中使用了如上方法Top

8 楼net_lover(【孟子E章】)回复于 2001-05-24 10:09:00 得分 10

比较复杂,以下代码基本可以!但还必须增加判断的条件![未完工:(]  
   
  <script>  
  function   SubstringDemo(){  
      var   num;  
      var   i=0;  
      var   k=0;  
      var   l=0;  
      var   flag="0"  
      var   s   =   txtText.value;  
       
      for(var   i=0;i<s.length;i++)  
      {  
        num=s.charCodeAt(i)  
         
              if((num>19967)&&(num<40870))  
        {k=k+1;}  
        else  
        {  
        if(((num>64)&&(num<91))||((num>96)&&(num<123)))  
        {l=l+1;}  
        else  
        {l=l+1;  
        alert("你输入的不是中文或英文字符,请重新输入!!")  
        }  
                  }  
                   
                   
                  var   qq=k+Math.round(l/2);  
                  if(qq>=10)  
              {  
              if((l-Math.round(l/2)*2)!=0)  
                  {  
                  //l+=1;  
                  var   flag="1";  
                   
                  }  
                  if((num>19967)&&(num<40870))  
                  {  
                  if(l==0)  
                  alert("所取字符:     "+s.substring(0,k+l)+"\n\n所取长度:     "+s.substring(0,k+l).length);  
                  else  
                  {  
                  if(flag=="1")  
                  alert("所取字符:     "+s.substring(0,k+l-1)+"\n\n所取长度:     "+s.substring(0,k+l-1).length);    
                  else  
                  alert("所取字符:     "+s.substring(0,k+l-1)+"\n\n所取长度:     "+s.substring(0,k+l-1).length);    
                   
                  }  
                  }  
                  else  
                   
                  alert("所取字符:     "+s.substring(0,k+l)+"\n\n所取长度:     "+s.substring(0,k+l).length);    
                   
          break;  
          }  
      }  
       
       
  }  
   
   
  </script>  
  <input   type="text"   name=txtText><br>  
  <input   type="button"   value="测试"   onclick="SubstringDemo()">Top

9 楼lowhand()回复于 2001-05-24 10:12:00 得分 0

我糊涂了,是不是说对于中文来说,n是表示中文字的个数,而对于英文来说,n表示的是字符的个数,再一个,上述结果是不是substring和substr产生的影响是一样的,请各位大侠指点Top

相关问题

  • 怎样取出字符串?
  • 创建N个字符串???
  • 字符串123(456)取出括号中的字符串?
  • 如何从CString字符串中取出子字符串?如S="ABCDEF123G",要取出字符串"123",如何操作?
  • 字符串.....哎,字符串
  • 如何从字符串"<d>value</d>"中取出字符串"value",在线求助!
  • 如何从一个字符串中提取出一个字符串?
  • 一个简单的问题:怎样取出一个字符串的第m到第n个字符?
  • 我有n个字符串,我如何检测出字符串中带有#的字符串?
  • 截字符串???

关键词

  • 字符
  • 函数
  • 中文
  • 文字
  • start
  • 字符串
  • 子字符串
  • substr
  • 长度
  • 示例

得分解答快速导航

  • 帖主:Ailong
  • playyuer
  • net_lover
  • cymlx
  • net_lover

相关链接

  • Web开发类图书

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
北京创新乐知广告有限公司 版权所有, 京 ICP 证 070598 号
世纪乐知(北京)网络技术有限公司 提供技术支持
Copyright © 2000-2008, CSDN.NET, All Rights Reserved
GongshangLogo