<html>
<head>
<meta charset="utf-8">
<script type="text/javascript">
window.onload = function(){
var s ="<html>\n"
+"<body>\n"
+" \n"
+"<div>\n"
+"123\n"
+" \n"
+"</div>\n"
+" \n"
+"</body>\n"
+" \n"
+"</html>"
var str = s.replace(/(\s+\n+|\n+|\s+|\n+\s+)/g,"")
console.log(str)
var str = str.replace(/></g,">\n<")
console.log(str)
var str = str.replace(/>\S+</g,function(world){
return ">\n"+world.substring(1,world.length-1)+"\n<"
})
console.log(str)
document.getElementById("msg").innerText = str
}
</script>
<style type="text/css">
.msg{
width: 100%
height: 60px
color:#FBBDEE
}
</style>
</head>
<body>
<div id="msg" class="msg"></div>
</body>
</html>
不知道适不适合你的要求。个人觉得是可以满足的。
第一种:循环检查替换[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
}
//去掉右边的空白 www.2cto.com
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-1i>=0i--){
if(/\S/.test(str.charAt(i))){
str = str.substring(0, i+1)
break
}
}
return str
}
经过测试第五种方法在处理长字符串时效率最高。
具体的算法为:
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
}
//去掉右边的空白 www.2cto.com 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一种直译式脚本语言,是一种动态类型、弱类型、基于原型的语言,内置支持类型。它的解释器被称为JavaScript引擎,为浏览器的一部分,广泛用于客户端的脚本语言,最早是在HTML(标准通用标记语言下的一个应用)网页上使用,用来给HTML网页增加动态功能。