javascript - 字母数字和空格正则表达式,但字符串的开头和结尾没有空格

标签 javascript regex spaces alphanumeric

我想写一个正则表达式,它可能包含字母或数字或单词之间的空格,并且长度必须在 3 到 50 之间,但字符串的开头和结尾不能有空格。这是我的正则表达式:

/^[^-\s]([a-z0-9]|[a-z0-9\s-]){3,50}[^-\s]+$/i

有效字符串:

uma
umair
umair K

无效字符串:

 uma
u
um
umair 

最后一个例子有一个尾随空格。

最佳答案

^(?=.{3,50}$)[^\W_]+(?: [^\W_]+)*$
  • ^ 断言字符串开头的位置
  • (?=.{3,50}$) 确保行尾前有 3 到 50 个字符的正向前瞻
  • [^\W_]+ 匹配除_以外的任何单词字符一次或多次
  • (?: [^\W_]+)* 匹配一个空格后跟一个或多个单词字符,任意次数
  • $ 在行尾断言位置

var r = /^(?=.{3,50}$)[^\W_]+(?: [^\W_]+)*$/
var a = [
  'uma','umair','umair K', //valid
  ' uma','u','um','umair ' //invalid
]

a.forEach(function(s){
  console.log(r.test(s) ? `Valid: ${s}` : `Invalid: ${s}`)
})

备选方案:

^[^\W_][a-zA-Z\d ]{1,48}[^\W_]$

关于javascript - 字母数字和空格正则表达式,但字符串的开头和结尾没有空格,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49134661/

相关文章:

objective-c - 使用单词验证正则表达式进行输入字符验证

java - 屏蔽字符串的一部分

Windows FOR/F - 回显文件中的每一行 - 行中的空格 - 失败

python - 访问python中的文件: extra spaces

php - 如何使用 jquery 或 css 在 wordpress 中隐藏类别标题或描述?

javascript - 如何找到一个数字数组的总和

ruby - 当我在正则表达式的范围量词中放置一个空格时,它有什么意义?

javascript - 更改 Highcharts 主题(部分有效)

javascript - 如何统一检索文件切片,同时支持File API和XMLHttpRequest/Fetch API?

linux - 如何在 Vim 或 Linux 中将空格转换为制表符?