import { floatToFixed2 } from '@/utils'

// 格式化金额【分转元】
// @ts-ignore
export const fenToYuanFormat = (_, __, cellValue: any, ___) => {
  return `￥${floatToFixed2(cellValue)}`
}

/**
 * 校验手机号码格式（支持国际号码）
 * @param {string} phoneNumber - 待校验的手机号码
 * @returns {boolean} - 返回是否有效的布尔值
 */
// 测试用例
// console.log(validatePhoneNumber("13800138000"));      // true - 中国手机号
// console.log(validatePhoneNumber("+8613800138000"));   // true - 带国际码的中国手机号
// console.log(validatePhoneNumber("008613800138000"));  // true - 带国际码的中国手机号
// console.log(validatePhoneNumber("+1 212-555-1234"));  // true - 美国号码
// console.log(validatePhoneNumber("+44 20 7946 0958")); // true - 英国号码
// console.log(validatePhoneNumber("+81 3-1234-5678"));  // true - 日本号码
// console.log(validatePhoneNumber("12345"));            // false - 过短
// console.log(validatePhoneNumber("abcdefg"));          // false - 非数字
export const validatePhoneNumber = (phoneNumber: any, isReturn = false): any => {
  // 去除所有空格、连字符等非数字字符
  const cleanedNumber = phoneNumber.replace(/\D/g, '');
  
  // 国际号码正则（简化版，匹配大多数国际号码格式）
  // 格式：可选的国家码（1-3位数字） + 7-15位数字
  const internationalPattern = /^(?:\+?(\d{1,3}))?[-. (]*(\d{7,15})$/;
  
  // 中国手机号码正则
  const chinaPattern = /^(?:(?:\+|00)86)?1[3-9]\d{9}$/;
  
  // 检查是否符合中国号码或国际号码格式
  if (isReturn) { return { cleanedNumber, valid: chinaPattern.test(cleanedNumber) || internationalPattern.test(cleanedNumber) } }
  else return chinaPattern.test(cleanedNumber) || internationalPattern.test(cleanedNumber);
}
