int f(int n) { for (int i = n - 1; i > 0; n *= i, i--); return n ? n : 1; }
, я использовал интервал для краткости; используйте другие типы для поддержки большего числа.
Попробуйте это:
/^[A-Za-z0-9-_",'\s]+$/