Javascript截取字符串方法集合

1.Javascript截取字符串的两个方法

1.substr 方法
返回一个从指定位置开始的指定长度的子字符串。
stringvar.substr(start [, length ])
参数
stringvar 必选项,要提取子字符串的字符串文字或String对象。
start 必选项,所需的子字符串的起始位置。字符串中的第一个字符的索引为0
length 可选项,在返回的子字符串中应包括的字符个数。
说明,如果length0或负数,将返回一个空字符串。如果没有指定该参数,则子字符串将延续到stringvar 的最后。
示例
下面的示例演示了substr方法的用法。

function SubstrDemo() {
var s, ss; // 声明变量。

var s = "The rain in Spain falls mainly in the plain.";
ss 
= s.substr(125); // 获取子字符串。

return(ss); // 返回 "Spain"
}

2.substring方法
返回位于String对象中指定位置的子字符串。 
strVariable.substring(start, end)
"String Literal".substring(start, end)
参数
start 指明子字符串的起始位置,该索引从 0 开始起算。
end 指明子字符串的结束位置,该索引从 0 开始起算。
说明
substring 方法将返回一个包含从start到最后(不包含end)的子字符串的字符串。
substring方法使用startend两者中的较小值作为子字符串的起始点。例如:strvar.substring(0, 3)和strvar.substring(3, 0)将返回相同的。

3.正确截取单字节和双字节混和字符串的方法

  1. <script type="text/javascript">
  2. /*************************************************************
  3.      Author         : Yanfu Xie <xieyanfu@yahoo.com.cn>
  4.      Url         : http://www.yitu.org
  5.      Description     : 正确截取单字节和双字节混和字符串
  6.      String str     : 要截取的字符串
  7.      Number         : 截取长度
  8. *************************************************************/
  9. function substr(str, len)
  10. {
  11.     if(!str || !len) { return ''}
  12.     //预期计数:中文2字节,英文1字节
  13.     var a = 0;
  14.     //循环计数
  15.     var i = 0;
  16.     //临时字串
  17.     var temp = '';
  18.     for (i=0;i<str.length;i++)
  19.     {
  20.         if (str.charCodeAt(i)>255)  
  21.         {
  22.             //按照预期计数增加2
  23.              a+=2;
  24.         }
  25.         else
  26.         {
  27.              a++;
  28.         }
  29.         //如果增加计数后长度大于限定长度,就直接返回临时字符串
  30.         if(a > len) { return temp; }
  31.         //将当前内容加到临时字符串
  32.          temp += str.charAt(i);
  33.     }
  34.     //如果全部是单字节字符,就直接返回源字符串
  35.     return str;
  36. }
  37. var str = "呵呵he哈哈嘿嘿and";
  38. document.write("字符串:<font color='red'>"+str+"</font><br /><br />");
  39. document.write("javascript 默认截取10个字节的返回值:<br />");
  40. document.write("<font color='red'>"+str.substr(010)+"</font><br /><br />");
  41. document.write("用本文介绍的方法截取10个字节的返回值:<br />");
  42. document.write("<font color='red'>"+substr(str, 10)+"</font><br /><br />");
  43. document.write("截取9个字节的返回值:<br />");
  44. document.write("<font color='red'>"+substr(str, 9)+"</font><br /><br />");
  45. </script>

  46. 還有更簡單的方法(正則)
    <script>
    a="中文測試"
    b="51js.com"
    function dd(str,c){document.write(str.replace(/([\u0391-\uffe5])/ig,'$1a').substring(0,c).replace(/([\u0391-\uffe5])a/ig,'$1')+"<br/>")}
    dd(a,8);
    dd(b,8);
    </script>
  47. ===================================
  48.                                 分割线
===================================
怎么用JavaScript实现 

编程:编写一个截取字符串的函数,输入为一个字符串和字节数,输出为按字节截取的字符串。   但是要保证汉字不被截半个,如“我ABC”4,应该截为“我AB”,输入“我ABC汉DEF”,6,应该输出为“我ABC”而不是“我ABC+汉的半个”。   

以前写的一个Cs类,但现在突然用到JAvaScript,有点茫然了 
public   static   string   ToCut(string   inputString,int   len) 

int   tempLen=0; 
string   tempString= " "; 
inputString=LoseHtml(inputString); 
ASCIIEncoding   ascii   =     new   ASCIIEncoding(); 

byte[]   s   =   ascii.GetBytes(inputString); 
for(int   i=0;i <s.Length;i++) 

if((int)s[i]==63) 

tempLen+=2; 

else 

tempLen+=1; 

                                
try 

tempString+=inputString.Substring(i,1); 

catch 

break; 


if(tempLen> len) 
break; 

//如果截过则加上半个省略号 
byte[]   mybyte=System.Text.Encoding.Default.GetBytes(inputString); 
if(mybyte.Length> len) 
tempString=tempString.Substring(0,tempString.Length-3==0?1:tempString.Length-3)+ "… "; 

return   tempString; 

  1. ===================================
  2.                                 分割线
===================================

一个JavaScript基础技巧,根据一串字串中规定的字符,获取该字符以左或以右的字符串,以本例中的电子邮箱为例,它可以获取邮箱的用户名,而将用户名以外的字符抛弃掉,本实例应该是比较实用的。

<html> 
<head> 
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" /> 
<title>JavaScript截取字符串</title> 
</head> 
<body> 
<input id="x" type="text"/> 
<input type="button" οnclick="x()" value="输入邮件地址,获取用户名"/> 
<script> 
function x(){ 
var x=document.getElementById("x").value.toString(); 
var c=x.split("@"); 
document.getElementById("x").value=c[0]; 
</script> 
</body> 
</html>

关于js split的用法其它也不多说什么,下面直接举例给大家看看 
复制代码代码如下:

<script language="javascript"> 
str="2,2,3,5,6,6"; //这是一字符串 
var strs= new Array(); //定义一数组 

strs=str.split(","); //字符分割 
for (i=0;i<strs.length ;i++ ) 

document.write(strs[i]+"<br/>"); //分割后的字符输出 

</script> 

输出结果就是 
复制代码代码如下:







js split就是将一字符串以特定的字符分割成多个字符串,大家应当一看就懂了吧。
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值