Никогда не слышал о ereg
, но я предполагаю, что он будет совпадать с подстрокой.
В этом случае вы хотите включить якоря на любом конце вашего регулярного выражения, чтобы вызвать совпадение для всей строки:
"^[a-zA-Z]+$"
Кроме того, вы могли бы упростить вашу функцию для чтения
return ereg("^[a-zA-Z]+$", $myString);
потому что if
для возврата true
или false
из того, что уже является логическим значением, является избыточным.
Кроме того, вы можете сопоставить любой символ, который не буква, и вернуть дополнение к результату:
return !ereg("[^a-zA-Z]", $myString);
Обратите внимание на ^
в начале набора символов, который инвертирует его. Также обратите внимание, что вам больше не нужен +
после него, так как один «плохой» символ приведет к совпадению.
Наконец ... этот совет для Java, потому что у вас есть Java тэг в вашем вопросе. Но $
в $myString
выглядит так, как будто вы имеете дело, может быть, с Perl или PHP? Некоторое разъяснение может помочь.