下面是我写的另一种实现方式,直接用正则表达式进行判断的..跟楼上的比,就只是代码有所不同吧,基本原理应该还是一样的.
<html>
<head>
<script language="javascript">
function checkValue(){
var objUserName = document.getElementById("txtUserName")
var reg = /^\s*(\S+)\s*$/
if(reg.test(objUserName.value)){
//如果用户输入的内容,开头或结尾带有空格,则将空格去掉,重新赋给文本框的value属性
objUserName.value = RegExp.$1
alert("验证通过")
}else{
//如果用户只输入了空格,则将空格清空
objUserName.value = ""
alert("请输入用户名")
}
}
</script>
</head>
<body onload="">
<input type="text" id="txtUserName"/>
<button onclick="checkValue()">Check</button>
</body>
</html>
首先去掉首末位空格。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)