2010-03-15 8 views
8

Jak mogę szybko zweryfikować, czy ciąg jest tylko alfabetyczne, npMembers alfabetycznego tylko ciąg w javascript

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

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

Edit: Chciałbym dodać nawias tj () do wyjątku, tak

var str = "("; 

lub

var str = ")"; 

również zwrócić wartość true.

Odpowiedz

33

wyrażenie regularne wymagają co najmniej jedną literę lub paren i pozwalają tylko litery i paren:

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

Modyfikacja regexp jak potrzebne:

  • /^[a-zA-Z()]*$/ - również zwraca true dla pusty string
  • /^[a-zA-Z()]$/ - zwraca tylko wartość true dla pojedynczych znaków.
  • /^[a-zA-Z() ]+$/ - pozwala również obowiązuje
+0

'\ s' i jego kuzyni wewnątrz zestawów znaków nie jest powszechnie obsługiwana w innych smakach regularnych wyrażeń, więc mają tendencję, aby tego uniknąć, choć będzie działać poprawnie w JavaScript. – gnarf

+0

Flaga "i" może być również odpowiednia. –

+1

@Justin Johnson - Yup - '/^[a-z()] + $/i.test (str);' działa również. – gnarf

2

Jeśli mnie pamięć nie myli to powinno działać w javascript:

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

nie ma potrzeby ucieczki od'() 'w zestawie znaków. – gnarf

1

można użyć wyrażeń regularnych ...

funkcje isLetter (str) { powrót str.match ("^ [a-zA-Z()] + $"); }

Ups ... mój zły ... to nie tak ... to powinno być

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

Jako druga odpowiedź mówi ... przepraszam

4

Proszę bardzo:

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