博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Javascript截取字符串方法集合
阅读量:7176 次
发布时间:2019-06-29

本文共 3844 字,大约阅读时间需要 12 分钟。

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

1.substr 方法

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

ExpandedBlockStart.giffunction SubstrDemo(){

InBlock.gifvar s, ss; // 声明变量。
InBlock.gifvar s = "The rain in Spain falls mainly in the plain.";
InBlock.gifss = s.substr(12, 5); // 获取子字符串。
InBlock.gifreturn(ss); // 返回 "Spain"。
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.正确截取单字节和双字节混和字符串的方法

  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(0, 10)+"</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>

输出结果就是

复制代码代码如下:

2

2
3
5
6
6

js split就是将一字符串以特定的字符分割成多个字符串,大家应当一看就懂了吧。

 

原文地址:

转载地址:http://exbzm.baihongyu.com/

你可能感兴趣的文章
android自动化测试工具之DroidPilot
查看>>
winfrom 界面编辑之疑难杂症
查看>>
pdo知识点1
查看>>
导出函数与未导出函数
查看>>
Elasticsearch Java Client连接池
查看>>
(一)ASP.NET中JavaScript的中英文(多语言)实现方案
查看>>
如何构建ASP.NET MVC4&JQuery&AJax&JSon示例
查看>>
最大数——栈
查看>>
Error: Divergence detected in AMG solver: k
查看>>
Spring学习系列(一) Spring简介
查看>>
Windows绘图和GDI+疑难
查看>>
C#字符串的方法
查看>>
ubuntu搜狗拼音安装
查看>>
小牢骚
查看>>
redis 五种数据结构详解(string,list,set,zset,hash)
查看>>
烤鸡翅
查看>>
XSS(跨站脚本攻击)
查看>>
IT兄弟连 JavaWeb教程 JSP中的注释
查看>>
javascript截取字符串长度
查看>>
常见算法整理
查看>>