正则表达式仅适用于字符a-z,A-Z

时间:2010-08-20 14:54:34

标签: javascript jquery regex

我不知道如何在JavaScript或jQuery中创建正则表达式。

我想创建一个正则表达式,它将检查字符串是否只包含a-z和A-Z之间的字符,并且任何排列。

修改

当我试图制作正则表达式时

/^[a-zA-Z\s]+$/

也接受白色空间。它不起作用。可能是什么错误?

我正在 JavaScript RegExp Example: Online Regular Expression Tester 测试我的正则表达式。

5 个答案:

答案 0 :(得分:60)

/^[a-zA-Z]*$/

如果您不想允许空匹配,请将*更改为+

参考文献:

Character classes ([...])Anchors (^ and $)Repetition (+, *)

/只是分隔符,它表示正则表达式的开头和结尾。现在,您可以使用modifiers

答案 1 :(得分:23)

抄袭其他答案所说的内容,因为你根本不知道怎么做,这里有一个如何用JavaScript做的例子:

var charactersOnly = "This contains only characters";
var nonCharacters = "This has _@#*($()*@#$(*@%^_(#@!$ non-characters";

if (charactersOnly.search(/[^a-zA-Z]+/) === -1) {
  alert("Only characters");
}

if (nonCharacters.search(/[^a-zA-Z]+/)) {
  alert("There are non characters.");
}

开始和结束正则表达式的/表示它是正则表达式。 search函数同时使用字符串和正则表达式,因此/是指定正则表达式所必需的。

the MDN Docs开始,如果没有匹配项,函数将返回-1

另请注意:这仅适用于 a-z,A-Z。如果有空格,它就会失败。

答案 2 :(得分:9)

/^[a-zA-Z]+$/ 

脱离我的头顶。

编辑:

或者,如果您不喜欢奇怪的文字语法,可以像这样做

new RegExp("^[a-zA-Z]+$");

答案 3 :(得分:2)

使用POSIX Bracket表达式(Javascript不支持)可以这样做:

/[:alpha:]+/

任何字母A至Z或a至z。

/^[[:alpha:]]+$/s

严格匹配空格。

答案 4 :(得分:1)

/[^a-z]/g 解决了问题。

function pangram(str) {
    let regExp = /[^a-z]/g;
    let letters = str.toLowerCase().replace(regExp, '');
    document.getElementById('letters').innerHTML = letters;
}
pangram('GHV 2@# %hfr efg uor7 489(*&^% knt lhtkjj ngnm!@#$%^&*()_');
<h4 id="letters"></h4>