写个前端正则允许姓名中间加空格,多个空格转化成一个空格,姓名前后空格无效
时间: 2024-10-19 20:09:56 浏览: 20
JS正则表达式大全【6】
你可以使用JavaScript中的正则表达式来匹配和处理这种格式的姓名。这里是一个例子:
```javascript
const regex = /^\s*(\S+\s+)*\S+\s*$/;
function validateName(name) {
return regex.test(name);
}
```
这个正则表达式的解释:
- `^\s*` 匹配开始位置,允许零个或多个空格。
- `(\S+\s+)*` 匹配一个或多个非空白字符 (`\S+`) 后跟一个空格,这部分可以出现一次或多次,表示中间可以有多个空格。
- `*\S+` 匹配结束位置,要求至少有一个非空白字符,意味着名字必须以非空格字符结尾。
- `\s*$` 确保字符串以零个或多个空格结束,但名字前后不允许有空格。
如果你想在验证通过后把多余的空格替换为一个单个空格,可以在`validateName`函数中添加额外的处理:
```javascript
function formatName(name) {
return name.replace(/\s+/g, ' ');
}
let formattedName = formatName(validateName(" John Doe ")) // 返回 "John Doe"
```
阅读全文