如何检查输入只是一个数字,字母和空格?

时间:2010-08-12 15:35:58

标签: javascript regex

我需要编写一些Javascript来检查输入,只允许数字和字母以及' - '和'_'以及空格键

这是我的正则表达式

var pattern = /^([a-zA-Z])([a-zA-Z0-9_-]){1,80}$/;

以上正则表达式不包括空格键。如何在我的正则表达式中添加空格条件。

1 个答案:

答案 0 :(得分:3)

对我而言:

var pattern = /^([a-zA-Z])([a-zA-Z0-9_ -]){1,80}$/;

作品。

也许你遇到了这样尝试的问题?

var pattern = /^([a-zA-Z])([a-zA-Z0-9_- ]){1,80}$/;

并且正则表达式Parser认为你“强调空格键”而不是“下划线和空格键? (没有测试)

修改

做了一点测试

<script>
alert(/^([a-zA-Z])([a-zA-Z0-9_-]){1,80}$/.test("Aa232423"));
// true
alert(/^([a-zA-Z])([a-zA-Z0-9_ -]){1,80}$/.test("Aa232 423"));
// true 
alert(/^([a-zA-Z])([a-zA-Z0-9_- ]){1,80}$/.test("Aa232423"));
// parser error: invalid range in character set
</script>

我猜我的假设是对的;)

响应OP的Secound编辑评论:

<script>
alert(/^([a-zA-Z])([a-zA-Z0-9_ -]){1,80}$/.test("Aa232-423"));
//true
alert(/^([a-zA-Z])([a-zA-Z0-9_ -]){1,80}$/.test("Aa232-42 3"));
//true
</script>