js对字符串的操作和对数组的管理

用js操作字符串的简单方法

1.计算字符串的字节数

var str = 'huakai化sss噜噜噜kjk据';
function getStrlen(str){
        var json = 0;
        var re = /[\u4e00-\u9fa5]/;
        for (var i = 0; i < str.length; i++) {
                if(re.test(str.charAt(i))){
                        json++;
                }
        };
        return json+str.length;
}

 document.write(getStrlen(str));
2.截取字符串 abcdefg的efg

'abcdefg'.substring(4);和 <pre name="code" class="html" style="color: rgb(68, 68, 68); font-size: 14px; line-height: 21px;"><span style="font-family: 'Hiragino Sans GB', Tahoma, Simsun, 'Microsoft Yahei';">'abcdefg'.substring(-3);两个方法的结果是相同的,负数是从后面截取,正数是从前面算截取后面的。</span>

 3.判断字符串中出现最多的字符统计字符的次数 

var str = 'asdfssaaasasasasaa';
var json = {};
for (var i = 0; i < str.length; i++) {
        if(!json[str.charAt(i)]){
        <span style="white-space:pre">		</span>//如果str.charAt(i)这个字符没出现过
        <span style="white-space:pre">		</span>//就在json中另他的值为1
                json[str.charAt(i)] = 1;
        }else{
        <span style="white-space:pre">		</span>//如果str.charAt(i)在json中,就令他的
        <span style="white-space:pre">		</span>//数量加1
                json[str.charAt(i)]++;
        }
};
var iMax = 0;
var iIndex = '';
for(var i in json){
        if(json[i]>iMax){
                iMax = json[i];
                iIndex = i;
        }
}
alert('出现次数最多的是:'+iIndex+'出现'+iMax+'次');

4.对数组中的元素排序(冒泡排序法)

var array = [1,2,3,1,43,12,12,1];
var temp = 0;
for (var i = 0; i < array.length; i++)
{
	for (var j = 0; j < array.length - i; j++)
	{
		if (array[j] > array[j + 1])
		{
			temp = array[j + 1];
			array[j + 1] = array[j];
			array[j] = temp;
		}
	}
}
console.log(array);
5.删除数组中指定的值

Array.prototype.indexOf = function(val) {
for (var i = 0; i < this.length; i++) {
if (this[i] == val) return i;
}
return -1;
};
<pre name="code" class="html">Array.prototype.remove = function(val) {
var index = this.indexOf(val);
if (index > -1) {
this.splice(index, 1);
}
};

6.字符串的截取

<pre name="code" class="html">/** 功能:截取长字符串
 * @param {string} str 要截取的字符串
 * @param {number} size 截取长度(单字节长度)
 */
var subStr = function(str, size){
    var curSize = 0, arr = [];
    for(var i = 0, len = str.length; i < len; i++){
        arr.push(str.charAt(i));            
        if (str.charCodeAt(i) > 255){
            curSize += 2;
            if(size === curSize || size === curSize - 1){
                return arr.join('');
            }
        }else{
            curSize++;
            if(size === curSize){
                return arr.join('');
            }
        }
    }
};
var str = '#%*……&#什么东西1234abcd 还不够长';

alert(subStr(str, 15));
 


 



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值