第一种:循环检查替换
发展壮大离不开广大客户长期以来的信赖与支持,我们将始终秉承“诚信为本、服务至上”的服务理念,坚持“二合一”的优良服务模式,真诚服务每家企业,认真做好每个细节,不断完善自我,成就企业,实现共赢。行业涉及成都建筑动画等,在网站建设公司、营销型网站、WAP手机网站、VI设计、软件开发等项目上具有丰富的设计经验。
[javascript]
//供使用者调用
function trim(s){
return trimRight(trimLeft(s));
}
//去掉左边的空白
function trimLeft(s){
if(s == null) {
return "";
}
var whitespace = new String(" \t\n\r");
var str = new String(s);
if (whitespace.indexOf(str.charAt(0)) != -1) {
var j=0, i = str.length;
while (j i whitespace.indexOf(str.charAt(j)) != -1){
j++;
}
str = str.substring(j, i);
}
return str;
}
//去掉右边的空白
function trimRight(s){
if(s == null) return "";
var whitespace = new String(" \t\n\r");
var str = new String(s);
if (whitespace.indexOf(str.charAt(str.length-1)) != -1){
var i = str.length - 1;
while (i = 0 whitespace.indexOf(str.charAt(i)) != -1){
i--;
}
str = str.substring(0, i+1);
}
return str;
}
第二种:正则替换
[javascript]
SCRIPT LANGUAGE=" Java Script"
/SCRIPT
第三种:使用jquery
[javascript]
$.trim(str)
jquery内部实现为:
[javascript]
function trim(str){
return str.replace(/^(\s|\u00A0)+/,'').replace(/(\s|\u00A0)+$/,'');
}
第四种:使用motools
[javascript]
function trim(str){
return str.replace(/^(\s|\xA0)+|(\s|\xA0)+$/g, '');
}
第五种:裁剪字符串方式
[javascript]
function trim(str){
str = str.replace(/^(\s|\u00A0)+/,'');
for(var i=str.length-1; i=0; i--){
if(/\S/.test(str.charAt(i))){
str = str.substring(0, i+1);
break;
}
}
return str;
}
经过测试第五种方法在处理长字符串时效率最高。
这里分享下js获得/去掉变量开头字母的操作方法。
设备:联想笔记本Air14
系统:Windows 10
软件:zend studio10.0html+css
1、首先新建一个html文件,命名为test.html,在test.html文件内,创建script标签,用于编写js代码。
2、在js标签内,定义一个变量s,保存一个字符串。
3、在js标签内,使用indexOf方法从字符串s中查找首次出现字母a的位置。
4、在js标签内,使用alert方法输出位置。注:位置从零开始。
5、最后在浏览器打开test.html文件,查看结果。
数组去重复是一个常见的需求,我们暂时考虑同类型的数组去重复。主要是理清思路和考虑下性能。以下方法,网上基本都有,这里只是简单地总结一下。
思路:
1.遍历数组,一一比较,比较到相同的就删除后面的
2.遍历数组,一一比较,比较到相同的,跳过前面重复的,不相同的放入新数组
3.任取一个数组元素放入新数组,遍历剩下的数组元素任取一个,与新数组的元素一一比较,如果有不同的,放入新数组。
4.遍历数组,取一个元素,作为对象的属性,判断属性是否存在
1.
删除后面重复的:
function
ov1(arr){
//var
a1=((new
Date).getTime())
for(var
i=0;iarr.length;i++)
for(var
j=i+1;jarr.length;j++)
if(arr[i]===arr[j]){arr.splice(j,1);j--;}
//console.info((new
Date).getTime()-a1)
return
arr.sort(function(a,b){return
a-b});
}
2.
这个是常规的方法,比较好理解,如果相同则跳出循环
function
ov2(a)
{
//var
a1=((new
Date).getTime())
var
b
=
[],
n
=
a.length,
i,
j;
for
(i
=
0;
i
n;
i++)
{
for
(j
=
i
+
1;
j
n;
j++)
if
(a[i]
===
a[j]){j=false;break;}
if(j)b.push(a[i]);
}
//console.info((new
Date).getTime()-a1)
return
b.sort(function(a,b){return
a-b});
}
3.
这个我花了好长时间明白的,这里j循环虽然继续了,但是i值已经改变了。就等于是一个新的i循环:
function
ov3(a)
{
//var
a1=((new
Date).getTime())
var
b
=
[],
n
=
a.length,
i,
j;
for
(i
=
0;
i
n;
i++)
{
for
(j
=
i
+
1;
j
n;
j++)
if
(a[i]
===
a[j])j=++i
b.push(a[i]);}
//console.info((new
Date).getTime()-a1)
return
b.sort(function(a,b){return
a-b});
}
4.
保证新数组中的都是唯一的
function
ov4(ar){
//var
a1=((new
Date).getTime())
var
m=[],f;
for(var
i=0;iar.length;i++){
f=true;
for(var
j=0;jm.length;j++)
if(ar[i]===m[j]){f=false;break;};
if(f)m.push(ar[i])}
//console.info((new
Date).getTime()-a1)
return
m.sort(function(a,b){return
a-b});
}
5.
用对象属性
function
ov5(ar){
//
var
a1=(new
Date).getTime()
var
m,n=[],o=
{};
for
(var
i=0;(m=
ar[i])!==undefined;i++)
if
(!o[m]){n.push(m);o[m]=true;}
//
console.info((new
Date).getTime()-a1)
return
n.sort(function(a,b){return
a-b});;
}
以上这篇JavaScript几种数组去掉重复值的方法推荐就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持脚本之家。
可以用replace函数去除指定字符串。
1、在body标签和html标签中添加一个script标签,定义一个字符串,这里以“这是个什么演示文本”为例,将此时的字符串输出到页面:
2、输入“str.replace('什么', ''); ”,str是之前定义的字符串变量名,replace是替换字符串函数,这个函数有两个参数,第一个参数是想要被替换的内容,第二个参数是想要被替换成新的内容,如果第二个为空的字符串,相当于去除想要被替换的内容:
3、replace函数返回的是字符串,这时需要重新将这个字符串赋值给原来的字符串,再将这个字符串输出,这时原文本中的“什么”就被去除了:
去掉空格的本质就是将字符串中的空字符串删除,根据这个解决思路,我们有多种解决方法。
方法一:遍历法。遍历字符串中的字符保留有效字符
function trim(str){
var i;
var rst = '';
for(i=0;istr.length;i++){
var c = str.charAt(i);
if(c!==" "){
rst = rst + c;
}
}
return rst;
}
var testStr = " te s t ";
testStr = trim(testStr);
console.log(testStr );
//test
方法二:利用数组。利用数组特性简化代码
function trim(str){
var chars = str.split(" ");
return chars.join('');
}
var testStr = " te s t ";
testStr = trim(testStr);
console.log(testStr );
//test
方法三:递归法。利用正则表达式递归去除空格符
function trim(str) {
return str.replace(/(^\s+)|(\s+$)/g, "");
}
var testStr = " te s t ";
testStr = trim(testStr);
console.log(testStr );
//test
方法四:利用jquery.js。如果你使用jquery,可以使用jquery里的trim函数
var testStr = " te s t ";
testStr = $.trim(testStr);
console.log(testStr );
//test