Я бы предложил использовать strlen
для измерения длины строки, а затем регулярное выражение /[^a-z]/
для проверки на отсутствие буквенных символов.ПОЦЕЛУЙ.
Кстати, нет, я не вижу веской причины *, почему вы получаете такую производительность.
* веские причины, очевидно, не включают в себя ошибки или плохой дизайн ...
edit: оказывается, это может быть на самом деле плохой дизайн
edit2: поскольку проверка, которую вы делаете, довольно проста, вы можете реализовать ее на простом C:
int i;
for (i=0; i<20000 && str[i]!=0; i++)
if (str[i] < 'a' || str[i] > 'z')
return -1;
return i;
, если она возвращает -1, строка содержит символ вне диапазона az;если он возвращает 20000, строка длиннее 20000 символов;в противном случае он возвращает длину строки.(примечание: это будет явно работать только с неширокыми символьными строками)