zoukankan      html  css  js  c++  java
  • angular过滤器 -- 截取字符串

    使用angular定义用于截取特定长度的过滤器,并使用自定义符号(包括“...”)在末尾进行替换

    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>stringSub</title>
    </head>
    <script src="http://cdn.static.runoob.com/libs/angular.js/1.4.6/angular.min.js"></script>
    <body ng-app="myApp" ng-controller="myController">
    <span style="background: #ddd;border-radius: 4px;padding:2px;">{{arr | cutTxt:55:"..."}}</span>
    </body>
    <script>
        var app = angular.module('myApp', []);
        app.controller('myController', function($scope) {
            $scope.arr="这是一个技术更新迅猛的年代!";
        });
    
        app.filter('cutTxt', function () {
            return function (value, max,tail) {
                var judgeLength = 0,cutString = new String();
                var re = /^[u4E00-u9FA5]$/;
                if (!value){
                    return ''
                };
                max = parseInt(max);
                for (var i = 0; i < value.length; i++) {
                    if (judgeLength >= max) {
                        cutString = cutString.substr(0, cutString.length-1);
                        cutString = cutString.concat(tail||"..");
                        return cutString;
                    }
    
                    var singleChar = value.charAt(i);
                    if (re.test(singleChar)) {
                        judgeLength+=2;
                        console.log(singleChar);
                    }
                    else{
                        judgeLength++;
                    }
                    cutString = cutString.concat(singleChar);
                }
                return cutString;
            };
        });
    </script>
    </html>

    未限制长度时:

    限制长度时:

    //***********      添加另一个方法    *********//

    app.filter("formatStrFilter",function(){
            return function setString(str, len) {
                if(str==null){
                    return "";
                }
                var strlen = 0;
                var s = "";
                for (var i = 0; i < str.length; i++) {
                    if (str.charCodeAt(i) > 128) {
                        strlen += 2;
                    } else {
                        strlen++;
                    }
                    s += str.charAt(i);
                    if (strlen >= len) {
                        return s+"...";
                    }
                }
                return s;
            }
        })
  • 相关阅读:
    GoogleCpp风格指南 8)格式 _part1
    软考缉捕令
    nfc开发
    MFC 小知识总结二
    B
    UVA 10090 Marbles(扩展欧几里得)
    Android指令处理流程源代码追踪
    c语言基础学习04_条件判断语句
    教你如何解决Sublime Text 3使用中出现的中文乱码问题
    SecureCRT连接虚拟机中的Linux系统(Ubuntu)_Linux教程
  • 原文地址:https://www.cnblogs.com/huangxingquan/p/7598355.html
Copyright © 2011-2022 走看看