繁体   English   中英

REGEX:仅接受字母数字字符和空格,表达式开头或结尾的空格除外

[英]REGEX : accept only alphanumeric characters and spaces except the spaces at the begining or ending of expression

我需要实现只接受字母数字字符和空格的正则表达式,表达式开头或结尾的空格除外。

'   aaaa978aa' ===> fail
'aaaaaa      ' ===> fail
'aaaaaaaaAAAa' ===> match
'aaaaaaa  aaa' ===> match
'68776  67576' ===> match
'aAAAa756Gaaa' ===> match

在不区分大小写的模式下,我会将正则表达式编写如下:

^[a-z0-9](?:[a-z0-9 ]*[a-z0-9])?$

这需要一个前导字母数字字符,以及中间可选的字母或空格,也以字母数字字符结尾,至少对于长度为 2 个或更多字符的情况。

示例代码:

 var inputs = [" aaaa978aa", "aaaaaa ", "aaaaaaaaAAAa", "aaaaaaa aaa", "68776 67576", "aAAAa756Gaaa"]; inputs.forEach(x => console.log(x + (/^[a-z0-9](?:[a-z0-9 ]*[a-z0-9])?$/i.test(x)? ": match": ": fail")));

尝试这个:

^\w+(?:[ \t]+)?\w+$

^ : 在行首断言 position

\w+ :匹配任何单词字符(相当于 [a-zA-Z0-9_]),一次到无限次。

(?:[ \t]+)? : 非捕获组,匹配空格和制表符, ? 确保在 0 到 1 次之间匹配前一个标记。

$ :在行尾断言 position

https://regex101.com/r/sMcYuq/1

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM