这样用jquery截取字符串,得到特定字符

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了这样用jquery截取字符串,得到特定字符相关的知识,希望对你有一定的参考价值。

像这样的字符串:

登录失败,您还可以尝试 3 次<script type="text/javascript" reload="1">if(typeof errorhandle_ls=='function') errorhandle_ls('登录失败,您还可以尝试 3 次', 'loginperm':'3');</script>

怎样用正规表达式得到
您还可以尝试 3 次

去掉后面的<script type="text/javascript" reload="1">if(typeof errorhandle_ls=='function') errorhandle_ls('登录失败,您还可以尝试 3 次', 'loginperm':'3');</script>

使用原生JavaScript即可实现字符串截取功能,有几个函数可以使用:
1.stringObject.substr(start,length)

start:必需。要抽取的子串的起始下标。必须是数值。如果是负数,那么该参数声明从字符串的尾部开始算起的位置。也就是说,-1 指字符串中最后一个字符,-2 指倒数第二个字符,以此类推。
length:可选。子串中的字符数。必须是数值。如果省略了该参数,那么返回从 stringObject 的开始位置到结尾的字串。
返回值
一个新的字符串,包含从 stringObject 的 start(包括 start 所指的字符) 处开始的 length 个字符。如果没有指定 length,那么返回的字符串包含从 start 到 stringObject 的结尾的字符。

2.stringObject.substring(start,stop)

start:必需。一个非负的整数,规定要提取的子串的第一个字符在 stringObject 中的位置。
stop:可选。一个非负的整数,比要提取的子串的最后一个字符在 stringObject 中的位置多 1。
如果省略该参数,那么返回的子串会一直到字符串的结尾。
返回值
一个新的字符串,该字符串值包含 stringObject 的一个子字符串,其内容是从 start 处到 stop-1 处的所有字符,其长度为 stop 减start。
说明
substring() 方法返回的子串包括 start 处的字符,但不包括 stop 处的字符。
如果参数 start 与 stop 相等,那么该方法返回的就是一个空串(即长度为 0 的字符串)。如果 start 比 stop 大,那么该方法在提取子串之前会先交换这两个参数。
参考技术A 不推荐用正则表达式,建议使用字符串的两个方法:substr或subtring

var from = 'abcdefg';
var to = from.substr(1,3); //表示从1位开始截取后面的3个字符,"bcd"
to = from.substring(1,3); //表示从1位开始截取到3位,"bc"

所以你上面的代码可以这样写
var string = '登录失.....ipt>';
to = string.substr(0, 13);

如果一定要用正则,那么这样写
to = from.match(/bcd/); //返回一个匹配到的数组,['bcd']

所以,
to = string.match(/登录失败,您还可以尝试 \d+ 次/);
if(to!==null)
alert(to[0]);

参考资料:http://www.w3school.com.cn/js/jsref_substr.asp

本回答被提问者采纳

jquery 四舍五入截取字符串

这样的数据23.25666666666 转换为23.26
留2个小数四舍五入 怎么实现?

趁我写例子这点时间有两个人回答了 呵呵

刚才试验过了 看下例子吧

JS 方法:

<script type="text/javascript">
// 得到字符串的真实长度(双字节换算为两个单字节)
function getStrActualLen(sChars)

//sChars.replace(/[^\\x00-\\xff]/g,"xx").length/1024+"字节";
//Math.round(sChars.replace(/[^\\x00-\\xff]/g,"xx").length/1024);这个貌似不好使
return alert(formatNum(sChars.replace(/[^\\x00-\\xff]/g,"xx").length/1024,4));

//格式化小数,并四舍五入。如:formatNum(100.12345678,4)
function formatNum(Num1,Num2)
if(isNaN(Num1)||isNaN(Num2))
return(0);
else
Num1=Num1.toString();
Num2=parseInt(Num2);
if(Num1.indexOf(\'.\')==-1)
return(Num1);
else
var b=Num1.substring(0,Num1.indexOf(\'.\')+Num2+1);
var c=Num1.substring(Num1.indexOf(\'.\')+Num2+1,Num1.indexOf(\'.\')+Num2+2);
if(c=="")
return(b);
else
if(parseInt(c)<5)
return(b);
else
return((Math.round(parseFloat(b)*Math.pow(10,Num2))+Math.round(parseFloat(Math.pow(0.1,Num2).toString().substring(0,Math.pow(0.1,Num2).toString().indexOf(\'.\')+Num2+1))*Math.pow(10,Num2)))/Math.pow(10,Num2));






Jquery方法:

function getStrActualLen()
var count=$("#sChars").val().length/1024;

return Math.round(count*Math.pow(10,4));

参考技术A //srcStr 要处理的数字
//nAfterDot 小数位数
function FormatNumber(srcStr,nAfterDot)

   var srcStr,nAfterDot;
   var resultStr,nTen;
   srcStr = ""+srcStr+"";
   strLen = srcStr.length;
   dotPos = srcStr.indexOf(".",0);
   if (dotPos == -1)
     resultStr = srcStr+".";
     for (i=0;i<nAfterDot;i++)
       resultStr = resultStr+"0";
    
     return resultStr;
  
   else
     if ((strLen - dotPos - 1) >= nAfterDot)
       nAfter = dotPos + nAfterDot + 1;
       nTen =1;
       for(j=0;j<nAfterDot;j++)
         nTen = nTen*10;
      
       resultStr = Math.round(parseFloat(srcStr)*nTen)/nTen;
       return resultStr;
    
     else
       resultStr = srcStr;
       for (i=0;i<(nAfterDot - strLen + dotPos + 1);i++)
         resultStr = resultStr+"0";
      
       return resultStr;
    
  

alert( FormatNumber(23.25666666666, 2) );

以上是关于这样用jquery截取字符串,得到特定字符的主要内容,如果未能解决你的问题,请参考以下文章

jquery根据指定字符截取字符串怎么实现

jquery 怎么样截取字符串;

jquery怎么截取字符串

请问BAT命令如何截取特定字符串,例如截取 com/ajsnfjakfb@sgsr 中/到@之间的内容?

关于sqlServer2005数据库字符串的截取?

js 如何截取字符串 到某个特定字符