摘要:
  今天在项目中遇到一个需求,验证一个文本输入字符串的格式,要求是输入的内容前后不能出现空格符,而字符串中间可以出现一个空格(只能一个,不能连续输入两个空格)。

解决方案:

(1)可以利用trim()方法去除字符串的首尾空格;
(2)利用正则\s{2,}获取连续出现两个空格的位置,替换成一个空格;
(3)使用onkeyup事件。

实现代码:

html代码:

<input type="text" id="roleid" name="roleName" class="layui-input" onclick="verifyInput()">

js代码:

//文本验证事件
function verifyInput(){document.onkeyup=function(){                // 合并两个空格为一个空格String.prototype.ResetBlank=function(){var regEx = /\s{2,}/g;return this.replace(regEx, ' ');};var str = $("#roleid").val();//获取文本框的值//重置文本框$("#roleid").val(str.ResetBlank().trim());//trim()去除首尾空格}
}

实现效果:

注意:

  可能有的人想着,不是可以在中间输入空格吗?那我输入一个不是空格的字符,然后输入一个空格,再继续输入不是空格的字符,这样好像也是可以的。答案是不可行的。
  由于使用了trim()去除了字符串的首尾空格,所以你输完一个不是空格的字符之后,鼠标光标的位置就是相当于最后一个位置,所以如果要想在字符串中间加空格,只能输完后再回头加空格,不能直接在一边输入一边在最后一个字符加空格,然后继续输入,这样是不可行的。

验证字符串首尾不允许输入空格,中间只能输入一个空格相关推荐

  1. 题目65:一个句子中也许有多个连续空格,过滤掉多余的空格,只留下一个空格。

    题目转载:http://python.wzms.com/s/1/65 题目描述: 一个句子中也许有多个连续空格,过滤掉多余的空格,只留下一个空格. 输入格式: 一行,一个字符串(长度不超过200),句 ...

  2. ubuntu 20.04 安装好搜狗输入法无法输入中文,只能输入英文的问题,因为没有安装依赖

    ubuntu 20.04 安装好搜狗输入法无法输入中文,只能输入英文的问题. 在搜狗官网下载了搜狗输入法sogoupinyin_3.4.0.9700_amd64.deb, 使用命令 sudo dpkg ...

  3. 【uniapp】小程序中输入银行卡号每四位留一个空格

    <view class="top_number"><input type="number" :value="userInputCar ...

  4. 设置input框只能输入数字或者只能输入英文

    οnkeyup="this.value=this.value.replace(/\D/g,' ')" //只能输入数字 若是在vue中可用οninput="this.va ...

  5. 正则表达式 只能输入正整数、只能输入数字

    1. 只能输入正整数: var zz2 = new RegExp("^[0-9]*[1-9][0-9]*$");// zz2 必须为正整数 console.log(zz2.test ...

  6. js实现输入银行卡号隔四位添加一个空格

    输入银行卡号时自动添加空格 首先获取输入框,然后监听它的input时间,利用正则去改变输入内容的格式 <body><input type="text" id=&q ...

  7. 处理参数中存在多个连续空格,只显示一个空格,复制后搜索不到得问题

    加一个属性white-space:pre; white-space:属性设置如何处理元素内的空白 可用的值有: normal:默认,空白会被浏览器忽略 pre:空白会被浏览器保留 nowrap: 文本 ...

  8. ubuntu 钉钉 输入法不能输入中文,只能输入英文。

    建议修改下钉钉启动文件(Elevator.sh)中输入法相关的环境变量. /opt/apps/com.alibabainc.dingtalk/files/Elevator.sh #!/bin/sh e ...

  9. 复制输入的字符串,将多个空格变成一个空格

    #include<stdio.h> int main() {int c;while((c=getchar())!=EOF)//不断循环将字符一个个赋给c{if(c==' ')//如果c=空 ...

最新文章

  1. 导师推荐的学术前沿号
  2. ​CPU将进入新时代:押注计算芯片的极限协同设计
  3. mal是什么类型对应的java类型是什么,【Java】mysql的 int 类型,刨析返回类型为BigDicemal 类型的奇怪现象...
  4. [CQOI2017] 老C的任务(差分 + 树状数组 / K-D tree)
  5. git c#,子文件的添加
  6. django 1.8 官方文档翻译: 3-3-4 管理文件
  7. MongoDB学习笔记(二)
  8. 拿来就能用!这本 Python 3.6 的实战书火爆了 IT 圈!
  9. CCF201803-2 碰撞的小球(100分)【模拟】
  10. 活动预约报名小程序已优化点与待优化点
  11. 搜索引擎网站收录入口大全
  12. Java中Switch-Case用法小结
  13. word与mathtype——“运行时错误48,文件未找到:MathPage.wll”解决
  14. 场地预约管理微信小程序开发过程中的错误记录
  15. 身份证号码验证——C语小程序言
  16. 虎牙Java后台实现三次面经
  17. Android背景设置透明和半透明效果
  18. m对比PSO,WPA,GWPA以及GWO四种优化算法的优化性能,优化目标函数为10个来自CEC2017的标准测试函数
  19. spring入门例子
  20. Virtual box安装回退的一系列可能的原因及解决办法

热门文章

  1. 流媒体开发(一)音频播放
  2. DSP串口通信浮点数
  3. w ndows8怎么连接网络,Windows8宽带连接在哪里?
  4. html制作网页怎么建站点,建站实操:如何发布一个网页
  5. 有线无线网卡都安装驱动失败
  6. 销售用到的心理学技巧有哪些
  7. 郑清 - 日常作息表 - July - 2019
  8. c语言break在if中用法,break可用于什么语句 break语句可用于for语句和if语句中 对吗...
  9. 看生物学家如何恶搞PLOS ONE
  10. 2014百度校园招聘面试题