我对JavaScript正则表达式没有太多经验,并且不确定如何只允许输入在这些字符组之间包含单个空格的字母数字字符。
可取之处的一些例子:
"abcde"
"ab cde"
"ab c de"
一些不受欢迎的例子:
" abcde"
"abcde "
"ab c de"
我意识到我可以使用trim()
来处理第一个和最后一个案例split(" ")
,然后只连接非空字符串,但想知道如何使用正则表达式执行此操作。
在旁注中,我可以使用\w
来表示允许的字符,“_”不是问题。
答案 0 :(得分:2)
如果您正在尝试修复不良案例,可以使用以下内容:
text = text.replace(/^ +| +$|( ) +/g, "$1");
/^ +/
将匹配开头的一个或多个空格,/ +$/
将匹配末尾的一个或多个空格,/( ) +/
将匹配字符串中任意位置的两个或多个空格。捕获组将是前两个表达式的空字符串,但它将是( ) +
的单个空格,因此您将只用一个替换多个空格。