2010-03-15 117 views
8

如何快速驗證一個字符串是否是唯一的字母,如驗證字母隻字符串中的JavaScript

var str = "!"; 
alert(isLetter(str)); // false 

var str = "a"; 
alert(isLetter(str)); // true 

編輯:我想即()加圓括號例外,所以

var str = "("; 

var str = ")"; 

也應該返回true。

回答

33

正則表達式需要至少一個字母,或括號,只允許字母和括號:

function isAlphaOrParen(str) { 
    return /^[a-zA-Z()]+$/.test(str); 
} 

根據需要修改的正則表達式:

  • /^[a-zA-Z()]*$/ - 也返回一個空真字符串
  • /^[a-zA-Z()]$/ - 只對單個字符返回true。
  • /^[a-zA-Z() ]+$/ - 還允許使用空格
+0

'\ s'和它的堂兄弟裏面的字符集在其他正則表達式中沒有得到廣泛的支持,所以我傾向於避免它,儘管它可以正常工作在JavaScript中。 – gnarf 2010-03-15 21:45:11

+0

'我''國旗也許是適當的。 – 2010-03-15 21:51:16

+1

@Justin Johnson - Yup - '/^[a-z()] + $/i.test(str);'也可以。 – gnarf 2010-03-15 21:57:30

2

如果沒記錯這應該在JavaScript工作:

function containsOnlyLettersOrParenthesis(str) 
(
    return str.match(/^([a-z\(\)]+)$/i); 
) 
+0

無需轉義' ()'在字符集中。 – gnarf 2010-03-15 21:39:39

1

你可以使用正則表達式...

功能isLetter(STR){ return str.match(「^ [a-zA-Z()] + $」); }

抱歉...我的壞...這是不對的......應該是

functions isLetter(str) { 
    return "^[a-zA-Z()]+$".test(str); 
} 

由於對方回答說...對不起

4

在這裏你去:

function isLetter(s) 
{ 
    return s.match("^[a-zA-Z\(\)]+$");  
} 
相關問題