/*
* 调整截取的字符串的位置。因为在截取一个字符串后可能存在两种情况:
* (1)字符串末位正好处于一个标签的属性之中的某个位置。如:<a id="xxx" href="xxx"
></a>中红色标注的位置。
* (2)字符串末位处于一个标签内容之中的某个位置。如:<a
>here
</a> 中红色标注的位置。
* 对于这两种情况,第二种情况可以无需特殊处理,但是第一种情况的话得将整个标签删除或者将其属性补全。删除的话
* 将字符串的末尾位置前移至标签开始之前;而补全则是将末尾位置后移至次标签的'>'处。这里采用的是删除的方法。
*/
function adjustByTagPostion(str){
var left_brace_index = str.lastIndexOf('<');
var right_brace_index = str.lastIndexOf('>');
// 为true的话则表示字符串处于第一种情况,需要进行删除操作。
var inTagDefinition = left_brace_index > right_brace_index;
return inTagDefinition ? str.substring(0,left_brace_index) : str;
}
// 将未闭合的标签按序闭合。
function modifyDisplayString(original, addTags){
var tagLenth = addTags.length;
for(var i = tagLenth-1; i >= 0; i--){
original += '</' + addTags[i] + '>';
}
return original;
}
//
function splitString(original, length){
// 此数组用于保存那些未闭合的标签。
var non_match_tag = []
// 如果大于字符串的总长度,返回整个字符串;否则返回指定长度的子串
var to = length >= original.length ? original.length : length;
var substring = original.substring(0,to);
// 调整字符串。
adjustedSubString = adjustByTagPostion(substring);
var tag_pattern = /<\s*(\w+\b)(?:[^>]*[^\/])?>|<(\/\w+)>/ig
adjustedSubString.replace(tag_pattern, function(match,$1,$2){
var value = $1 == '' ? ($2 == '' ? '' : $2) : $1;
if(value.charAt(0) == '/'){
// 为真表示这个标签是前面最后一个为闭合标签的闭合,因此,将此标签从数组中删除。
if(non_match_tag.length > 0 && non_match_tag[non_match_tag.length-1] == value.substring(1)){
non_match_tag.pop();
}
}else{
// 新的未闭合的标签,将其添加到数组中。
non_match_tag.push(value);
}
});
return modifyDisplayString(adjustedSubString, non_match_tag);
}
分享到:
相关推荐
那么有可能会影响网页的布局或者美观度,这个时候就要根据情况适量截取一定的字符串,以适应布局,不过当点击一个按钮的时候依然可以展开全部的内容,下面就通过一个实例详细介绍一下如何实现此效果,代码示例如下: ...
截取指定长度字符串操作在网站建设中大量使用,尤其是在新闻列表这种类型的操作中大量应用。 下面就是一个截取字符串代码实例: <!DOCTYPE HTML> <html> <head> <meta ...
JavaScript字符串处理函数,根据定义的长度截取字符串,超出部分裁掉追加……,很多时候网页上显示的内容需要缩成“…”该方法用于处理字符串显示固定长度,超长部分用“…”代替: /**参数说明: * 根据长度截取...
substr 方法用于根据开始位置和长度截取字符串并返回截取部分字符串。其语法如下: 代码如下: str_object.substr(start, length) 参数说明: 参数 说明 str_object 要操作的字符串(对象) start 必需。开始...
一直不知道js可以截取中文字符,呵呵,原理用正则表达式,匹配中文的长度,中文算两个,因为算一个,是个好东西,推荐大家收藏
从中截取字符串.asp 从中截取字符串 切分字符串.asp 切分字符串 删除字符串前后导空格.asp 删除字符串前导空格.asp 删除字符串后导空格.asp 反向截取字符串.asp ...
主要介绍了JS判断字符串字节数并截取长度的方法,涉及JavaScript针对页面元素与字符串的动态操作技巧,需要的朋友可以参考下
1、原生JavaScript实现字符串长度截取 2、原生JavaScript获取域名主机 3、原生JavaScript清除空格 4、原生JavaScript替换全部 5、原生JavaScript转义html标签 6、原生JavaScript还原html标签 7、原生JavaScript时间...
做为一个前端开发人员在网页展示中经常会碰到,标题过长,需要截取字符串,用CSS的实现的话各种兼容问题,各种坑。 让后台程序截一下,又各种推托,让后台按字节截一下更是和要了后台老命一样,最后可能只会安字符...
请注意,JavaScript 并没有一种有别于字符串类型的字符数据类型,所以返回的字符是长度为 1 的字符串 方法二:运用String对象下的substr方法 substr() 方法可在字符串中抽取从 start 下标开始的指定数目的字符。 ...
js里的字符串类似于数组,都是一个一个字符拼凑在一起组成的,因此可以用length属性取得字符串的长度 var str = “hello” str.length; // 5 字符串常用的一些方法 1. charAt() str.charAt(n) => 返回字符串的...
String对象的使用方法,输入一个字符串,然后转换成大小写,根据给定字符串长度截取字符串
在报表开发过程中,有些需求可能无法通过...考虑到JS脚本开发的使用较多,这里先先简单介绍如何用JS对字符串进行操作,比如如何判断字符串是否为空,字符串的长度,替换,查找,截取,或者将字符串转换为其他类型等。
1、原生JavaScript实现字符串长度截取 2、原生JavaScript获取域名主机 3、原生JavaScript清除空格 4、原生JavaScript替换全部 11、原生JavaScript加入收藏夹 15、原生JavaScript返回脚本内容 17、原生JavaScript动态...
JavaScript程序设计 String对象 6.4.1 String对象 1、创建String对象 ...截取从start位置开始到length长度的子字符串 toLowerCase() 方法 获取字符串的小写形式 toUpperCase() 方法 获取字符串的大写形式
截取指定长度字符串 折线图 按照比例改变图片大小(非生成缩略图) 收藏主页 数据验证类 数组转换成XML格式 日期计算 是否为电子邮件格式 柱形统计图 检查是否为一个合法的时间格式 检测URL地址有效性 检测...
1、length – 返回字符串的长度 ‘abcd'.length; //4 2、Math.ceil(num) – 向上取整,不管小数点后面是多少,哪怕.00001,也会向上进一位。 Math.ceil(25.9); //26 Math.ceil(25.5); //26 Math.ceil(25.1); //26...
方法一:用CSS截断字符串:IE,FireFox,Opera ,Safari都兼容 .subLongText{ width:150px; height:24px; overflow:hidden; white-space:nowrap; text-overflow:ellipsis; text-overflow: ellipsis;/* IE/Safari */ ...