正则表达式 – 匹配没有前导和尾随空格的字符串

前端之家收集整理的这篇文章主要介绍了正则表达式 – 匹配没有前导和尾随空格的字符串前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
构建一个拒绝未修剪的输入字符串的表达式.

有一组列入白名单的符号,包括空格.但它不能在第一个或最后一个位置使用.但是,它可以在任何数量的任何前导和修剪白名单之间使用.

有以下表达式:

^[^\s][A-Za-z0-9\s]*[^\s]$

…但它有多种原因无效,至少它仍然在前导位置和尾随位置匹配任何非空白符号,即使它不是白名单.此外,即使它与表达式匹配,也不会匹配单个字母单词.

白名单是A-Z,a-z,0-9,空格.

有效案例:

Abc132 3sdfas // everything ok

案例#1无效:

asd dsadas // leading\trailing space is exist

案例#2无效:

$das dsfds // not whitelisted symbol at the leading\trailing position

那么,如果它不是前导符号或尾随符号,如何在白名单中添加空白符号?

解决方法

您可以使用lookarounds来确保两端都没有空格:

^(?! )[A-Za-z0-9 ]*(?<! )$

Live demo

但是如果环境不支持外观,则以下正则表达式适用于大多数引擎:

^[A-Za-z0-9]+(?: +[A-Za-z0-9]+)*$

猜你在找的正则表达式相关文章