用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));