我正在尝试使用JavaScript检测文本字段中的空格,因此每当文本字段中有空格时,都会弹出一个警告,但此代码不起作用,它应该适用于两个文本字段。
<!DOCTYPE html>
<html>
<script type="text/javascript">
function detectSpace() {
$returnValue = preg_match('/[^a-z^A-Z^0-9]/', $str, $matches);
if ($returnValue==1)
{
alert("spaces & symbols are not allowed");
}
}
</script>
<body onload="detectSpace()">
<form action="demo_form.asp">
First name: <input type="text" name="FirstName" value=""><br>
Last name: <input type="text" name="LastName" value=""><br>
<input type="submit" value="Submit">
</form>
<p>Click the "Submit" button and the form-data will be sent to a page on the server called "demo_form.asp".</p>
</body>
</html>
答案 0 :(得分:4)
preg_match
是一个PHP函数而不是JavaScript函数 - 由于你的后端代码是ASP,这个函数更加模糊! PHP和JavaScript是不同的语言。要匹配JavaScript中的字符串,您需要将代码更改为:
function detectSpace(str) {
var expression = new RegExp(/\s/);
var returnValue = expression.test(str);
if (returnValue === true)
alert("spaces & symbols are not allowed");
}
有了这个,您需要在detectSpace
函数中传入要测试的值作为参数:
detectSpace("foo"); // No alert fired
detectSpace("foo bar"); // Alert fired
请注意,我还将您的正则表达式更改为/\s/
- 这与空格匹配,如果找到任何空格,则会返回true
。