regex.ts (4330B)
1 export const util_rxp = { 2 email: /^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}$/, 3 email_ch: /^[a-zA-Z0-9._%+-@-]*$/, 4 product_key: /^[A-Za-z_]+$/, 5 product_key_ch: /^[A-Za-z_]$/, 6 product_title: /[A-Za-z0-9 ]+$/, 7 product_title_ch: /[A-Za-z0-9 ]$/, 8 float: /^[+-]?(\d+(\.\d*)?|\.\d+)$/, 9 float_ch: /^[0-9\.\+\-]$/, 10 float_pos: /^\d+(\.\d+)?$/, 11 float_pos_ch: /^[0-9\.]$/, 12 description: /^(?:\S+(?:\s+\S+)*)$/, 13 description_ch: /[^a-zA-Z0-9.,!?;:'"(){}[]\s\u0600-\u06FF\u0900-\u097F\u0400-\u04FF\u0500-\u052F\u1F00-\u1FFF\u4E00-\u9FFF\uAC00-\uD7AF\u3040-\u309F\u30A0-\u30FF ]+/, 14 nbsp: /[\u00A0]/g, 15 nbsp_rp: /[\u00A0]+/g, 16 rtlm: /[\u200F]/g, 17 rtlm_rp: /[\u200F]+/g, 18 commas: /[,]+/g, 19 periods: /[.]+/g, 20 word_only: /^[a-zA-Z]+$/, 21 alpha: /[a-zA-Z ]$/, 22 alpha_ch: /[a-zA-Z ]$/, 23 num: /^[0-9]+$/, 24 lat: /^[-+]?([1-8]?[0-9](\.\d{1,6})?|90(\.0{1,6})?)$/, 25 lat_ch: /^[\d\.\+\-]$/, 26 lng: /^[-+]?((1[0-7]?[0-9]|180)(\.\d{1,6})?|(\d{1,2})(\.\d{1,6})?)$/, 27 lng_ch: /^[\d\.\+\-]$/, 28 alphanum: /[a-zA-Z0-9., ]$/, 29 alphanum_ch: /[a-zA-Z0-9.,\s\u0600-\u06FF\u0900-\u097F\u0400-\u04FF\u0500-\u052F\u1F00-\u1FFF\u4E00-\u9FFF\uAC00-\uD7AF\u3040-\u309F\u30A0-\u30FF ]+/, 30 price: /^\d+(\.\d+)?$/, 31 price_ch: /[0-9.]$/, 32 price_cur: /^[A-Za-z]{3}$/, 33 price_cur_ch: /[A-Za-z]$/, 34 profile_name: /^[a-zA-Z0-9._]{3,30}$/, 35 profile_name_ch: /[a-zA-Z0-9._]/, 36 trade_product_key: /^(?:[a-zA-Z0-9]+(?:\s+[a-zA-Z0-9]+){0,2})$/, 37 trade_product_category: /^(?:[a-zA-Z0-9]+(?:\s+[a-zA-Z0-9]+){0,2})$/, 38 currency_symbol: /(?:[A-Za-z]{3,5}\$|\p{Sc})/u, 39 currency_marker: /(?:[A-Za-z]{2,4}[^\d\s]+|[^\d\s]{1,3}[A-Za-z]{2,4})/, 40 ws_proto: /^(wss:\/\/|ws:\/\/)/, 41 bin_display_unit: /^(kg|lb|g)$/, 42 bin_display_unit_ch: /[A-Za-z]$/, 43 url_image_upload: /^file:\/\/.*\.(png|jpg|jpeg|gif|webp|bmp|svg)$/, 44 url_image_upload_dev: /^file:\/\/.*\.(png|jpg|jpeg|gif|webp|bmp|svg)$/, 45 country_code_a2: /^[A-Za-z]{2}$/, 46 addr_primary: /[a-zA-Z0-9., ]$/, 47 addr_admin: /[a-zA-Z0-9., ]$/, 48 num_int: /^[0-9]$/, 49 area_unit: /^(ac|ha|ft2|m2)$/, 50 area_unit_ch: /[A-Za-z2]$/, 51 }; 52 53 export type FormFieldsKey = 54 | `nostr_secret_key` 55 | `product_title` 56 | `product_key` 57 | `product_process` 58 | `product_description` 59 | `price` 60 | `price_currency` 61 | `bin_display_unit` 62 | `bin_display_amount` 63 | `bin_label` 64 | `farm_name` 65 | `farm_size` 66 | `area` 67 | `area_unit` 68 | `contact_name` 69 | `profile_name` 70 71 export type FormField = { 72 validate: RegExp; 73 charset: RegExp; 74 }; 75 76 export const form_fields: Record<FormFieldsKey, FormField> = { 77 profile_name: { 78 charset: util_rxp.profile_name_ch, 79 validate: util_rxp.profile_name, 80 }, 81 product_description: { 82 charset: util_rxp.alpha_ch, 83 validate: util_rxp.alpha, 84 }, 85 product_key: { 86 charset: util_rxp.product_key_ch, 87 validate: util_rxp.product_key, 88 }, 89 product_title: { 90 charset: util_rxp.product_title_ch, 91 validate: util_rxp.product_title, 92 }, 93 product_process: { 94 charset: util_rxp.alphanum_ch, 95 validate: util_rxp.alphanum, 96 }, 97 price: { 98 charset: util_rxp.price_ch, 99 validate: util_rxp.price, 100 }, 101 price_currency: { 102 charset: util_rxp.price_cur_ch, 103 validate: util_rxp.price_cur, 104 }, 105 bin_display_amount: { 106 charset: util_rxp.float_pos_ch, 107 validate: util_rxp.float_pos, 108 }, 109 bin_display_unit: { 110 charset: util_rxp.bin_display_unit_ch, 111 validate: util_rxp.bin_display_unit, 112 }, 113 bin_label: { 114 charset: util_rxp.alphanum_ch, 115 validate: util_rxp.alphanum, 116 }, 117 area: { 118 charset: util_rxp.float_ch, 119 validate: util_rxp.float, 120 }, 121 area_unit: { 122 charset: util_rxp.area_unit_ch, 123 validate: util_rxp.area_unit, 124 }, 125 farm_name: { 126 charset: util_rxp.alpha_ch, 127 validate: util_rxp.alpha, 128 }, 129 farm_size: { 130 charset: util_rxp.num_int, 131 validate: util_rxp.num_int, 132 }, 133 contact_name: { 134 charset: util_rxp.alpha_ch, 135 validate: util_rxp.alpha, 136 }, 137 nostr_secret_key: { 138 charset: util_rxp.alpha_ch, 139 validate: util_rxp.alpha, 140 } 141 };