RegEx for Javascript(替换函数)只允许字母和空格,但不允许以空格开头

RegEx for Javascript (replace function) to allow only letters and spaces, but not start with space?

本文关键字:空格 不允许 开头 许字母 Javascript for 替换 函数 RegEx      更新时间:2023-09-26

好吧,在keydown我需要文本框的情况下(带有regexreplace(:

  1. 第一个字符不是空格。
  2. 只允许字母。
  3. 单词之间的整个字符串中只允许一个空格。但是,如何 它在keydown事件中,如果用户按住空格键, 它只需要是文本框中的一个空格。

一些例子:

不要传递' My name is'(第一个字符是空格(

传递'My name is '(无关空间(

不要传递'My name is 123'(包含数字(

我尝试过只在一个空间上工作:

replace(/'s+/g,' ');

并且有效,但我不知道如何处理同一正则表达式中的其他内容。

这个正则表达式可以做到这一点

/^[A-Za-z]{1}[A-Za-z's]+$/

故障

^ - 行首

[A-Za-z] - 任何字母

{1} - 正好一个字母

[A-Za-z's] - 字母或空格字符

+ - 一个或多个

$ - 行尾

最后,我明白了:

目录

<input type="text" id="target">

Js

$( "#target" ).keyup(function() {
  var str = $(this).val();
  var res = str.replace(/'d+|^'s+$/g, '').replace(/'s+/g, ' ');
  $(this).val(res);
});

也许我的问题不太清楚,但你可以看到这个小提琴的最终结果

编辑:

要不允许特殊字符,需要声明它们:

str.replace(/['"''~`!@#$%^&()_={}[']:;,.<>+'/?-]+|'d+|^'s+$/g, '').replace(/'s+/ig, ' ')