import { getLanguage } from '@/views/Survey/views/Preview/js/language';
import type { ITranslatedText } from '@/views/Survey/views/Preview/components/questions/types/translatedText';

/**
 * 验证字母
 * @param {ICompletionConfig} config - 相关配置
 * @param {ICompletionAnswer} answer - 答案
 * @param {ITranslatedText} translatedText - 语言转换文本
 */
export function validateEnglishLetters(
  config: ICompletionConfig,
  answer: string,
  translatedText = getLanguage(['zh']) as ITranslatedText
) {
  let isError: boolean;

  // 验证规则
  const reg = /^[\sa-zA-Z·~！@#￥%…&*（）—\-+={}|《》？：“”【】、；‘’，。`!$^()_<>?:",./;'\\[\]]+$/;
  // 是否包含标点
  // 1. 包含标点 2. 不包含标点
  // 如果包含标点，则使用正则校验，如果不包含标点，则使用 /^[a-zA-Z]+$/ 校验
  isError =
    config.include_mark === 1
      ? !reg.test(answer) || !answer.length
      : !/^[a-zA-Z]+$/.test(answer) || !answer.length;

  return isError ? translatedText.PleaseEnterEnglishLetters : '';
}
