==
сравнивает ссылки на объекты в Java и не является исключением для объектов String
.
Для сравнения фактического содержимого объектов (в том числе String
) необходимо использовать equals
.
Если сравнение двух объектов String
с использованием ==
оказывается true
, это связано с тем, что объекты String
были интернированы, а виртуальная машина Java имеет несколько ссылки указывают на тот же экземпляр String
. Не следует ожидать сравнения одного объекта String
, содержащего то же содержимое, что и другой объект String
, используя ==
для оценки как true
.
Регулярное выражение, требующее хотя бы одну букву или скобку, и разрешать только буквы и скобки:
function isAlphaOrParen(str) {
return /^[a-zA-Z()]+$/.test(str);
}
При необходимости измените регулярное выражение:
/ ^ [a-zA-Z ()] * $ /
- также возвращает true для пустой строки / ^ [a-zA-Z ()] $ /
- возвращает true только для отдельных символов . / ^ [a-zA-Z ()] + $ /
- также позволяет использовать пробелы Вы можете использовать регулярные выражения...
functions isLetter(str) {
return str.match("^[a-zA-Z()]+$");
}
Упс... моя вина... это неправильно... должно быть
functions isLetter(str) {
return "^[a-zA-Z()]+$".test(str);
}
Как сказано в другом ответе... извините
Вот, пожалуйста:
function isLetter(s)
{
return s.match("^[a-zA-Z\(\)]+$");
}
Если память не изменяет, это должно работать в javascript:
function containsOnlyLettersOrParenthesis(str)
(
return str.match(/^([a-z\(\)]+)$/i);
)