[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
}
经过测试第五种方法在处理长字符串时效率最高。
<script type=”text/javascript”>function trim(str){ //删除左右两端的空格
return str.replace(/(^\s*)|(\s*$)/g, “”)
}
function ltrim(str){ //删除左边的空格
return str.replace(/(^\s*)/g,””)
}
function rtrim(str){ //删除右边的空格
return str.replace(/(\s*$)/g,””)
}
</script>
具体怎么使用,看你代码的写法了。
首先去掉首末位空格。var str = input.replace(/(^\s*)|(\s*$)/g,"")
验证名字
字符头尾是字母,中间由空格和字母组成,中间可以有多个空格,如:Taylor Gre Swift
/^[A-Za-z][A-Za-z\s]*[A-Za-z]$/.test(str)
如果想将中间无论多少空格替换成一个,可以再加这个:
str = str.replace(/\s+/g," ")
字符头尾是字母,中间由空格和字母组成,中间只有一个空格,如:Taylor Gre Swift
/^([A-Za-z]+\s?)*[A-Za-z]$/.test(str)