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

时间:2015-12-03 21:39:29

标签: javascript regex

好吧,在我需要的文本框的keydown事件中(使用regexreplace):

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

    不通过 ' My name is'(第一个字符是空格)

    传递 'My name is '(不重要的是空间)

    不通过 'My name is 123'(包含数字)

    我试过这个只能使用一个空格:

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

    并且有效,但我不知道如何在同一个正则表达式中使用其他内容。

2 个答案:

答案 0 :(得分:1)

这个正则表达式会这样做

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

击穿

^ - 行首

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

{1} - 正好一个字母

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

+ - 一个或多个

$ - 行尾

答案 1 :(得分:0)

最后,我明白了:

<强> HTML

<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);
});

也许我的问题不太清楚,但您可以在此fiddle

中看到最终结果

修改

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

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