1.Javascript截取字符串的两个方法
1.substr 方法 返回一个从指定位置开始的指定长度的子字符串。
stringvar.substr(start [, length ]) 参数 stringvar 必选项,要提取子字符串的字符串文字或String对象。 start 必选项,所需的子字符串的起始位置。字符串中的第一个字符的索引为0。 length 可选项,在返回的子字符串中应包括的字符个数。 说明,如果length为0或负数,将返回一个空字符串。如果没有指定该参数,则子字符串将延续到stringvar 的最后。 示例 下面的示例演示了substr方法的用法。function SubstrDemo(){
![InBlock.gif](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/InBlock.gif)
![InBlock.gif](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/InBlock.gif)
![InBlock.gif](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/InBlock.gif)
![InBlock.gif](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/InBlock.gif)
![ExpandedBlockEnd.gif](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/ExpandedBlockEnd.gif)
2.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)将返回相同的。3.正确截取单字节和双字节混和字符串的方法
-
<script type="text/javascript">
-
/*************************************************************
-
Author : Yanfu Xie <xieyanfu@yahoo.com.cn>
-
Url : http://www.yitu.org
-
Description : 正确截取单字节和双字节混和字符串
-
String str : 要截取的字符串
-
Number : 截取长度
-
*************************************************************/
-
function substr(str, len)
-
{
-
if(!str || !len) { return ''; }
-
//预期计数:中文2字节,英文1字节
-
var a = 0;
-
//循环计数
-
var i = 0;
-
//临时字串
-
var temp = '';
-
for (i=0;i<str.length;i++)
-
{
-
if (str.charCodeAt(i)>255)
-
{
-
//按照预期计数增加2
-
a+=2;
-
}
-
else
-
{
-
a++;
-
}
-
//如果增加计数后长度大于限定长度,就直接返回临时字符串
-
if(a > len) { return temp; }
-
//将当前内容加到临时字符串
-
temp += str.charAt(i);
-
}
-
//如果全部是单字节字符,就直接返回源字符串
-
return str;
-
}
-
var str = "呵呵he哈哈嘿嘿and";
-
document.write("字符串:<font color='red'>"+str+"</font><br /><br />");
-
document.write("javascript 默认截取10个字节的返回值:<br />");
-
document.write("<font color='red'>"+str.substr(0, 10)+"</font><br /><br />");
-
document.write("用本文介绍的方法截取10个字节的返回值:<br />");
-
document.write("<font color='red'>"+substr(str, 10)+"</font><br /><br />");
-
document.write("截取9个字节的返回值:<br />");
-
document.write("<font color='red'>"+substr(str, 9)+"</font><br /><br />");
-
</script>
- 還有更簡單的方法(正則) <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>
- ===================================
- 分割线
===================================
怎么用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; }- ===================================
- 分割线
===================================
一个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>输出结果就是
复制代码代码如下:
2
2 3 5 6 6js split就是将一字符串以特定的字符分割成多个字符串,大家应当一看就懂了吧。
原文地址: