MODELS
HAN
SEAL
ATTO 3
QIN PLUS
SONG PLUS
SEALION 7
SEAL 7 DM-i
HAN
HAN
EV
Explore More
Book A Test Drive
SEAL
SEAL
EV
Explore More
Book A Test Drive
ATTO 3
ATTO 3
EV
Explore More
Book A Test Drive
QIN PLUS
QIN PLUS
EV
Explore More
Book A Test Drive
SONG PLUS
SONG PLUS
EV
Explore More
Book A Test Drive
SEALION 7
SEALION 7
EV
Explore More
Book A Test Drive
SEAL 7 DM-i
SEAL 7 DM-i
EV
Explore More
Book A Test Drive
DESIGN & TECHNOLOGY
ABOUT US
CONTACT
EN
AR
MODELS
HAN
SEAL
ATTO 3
QIN PLUS
SONG PLUS
SEALION 7
SEAL 7 DM-i
HAN
HAN
EV
Explore More
Book A Test Drive
SEAL
SEAL
EV
Explore More
Book A Test Drive
ATTO 3
ATTO 3
EV
Explore More
Book A Test Drive
QIN PLUS
QIN PLUS
EV
Explore More
Book A Test Drive
SONG PLUS
SONG PLUS
EV
Explore More
Book A Test Drive
SEALION 7
SEALION 7
EV
Explore More
Book A Test Drive
SEAL 7 DM-i
SEAL 7 DM-i
EV
Explore More
Book A Test Drive
DESIGN & TECHNOLOGY
Offers
Blog
ABOUT US
CONTACT
NEWS AND STORIES
Contact Us
Get in touch with BYD Oman
REQUEST A QUOTE
BOOK A TEST DRIVE
Form submitted successfully
FULL NAME*
EMAIL ADDRESS*
MOBILE NUMBER*
MESSAGE
SEND MESSAGE
Form submitted successfully
FULL NAME*
EMAIL ADDRESS*
MOBILE NUMBER*
MESSAGE
SEND MESSAGE
FIND A SHOWROOM
FIND A SERVICE CENTRE
BYD World Business Auto
Ar Rumaylah street, Wattayah, Muscat, Sultanate of Oman
Email:
sales@wabbyd.com
Phone:
96872225925
BYD Oman
HGWC+GQ5, Al Nahdah St, Muscat, Oman
Email:
sales@wabbyd.com
Phone:
96872225925
BYD - Al Mouj
J7H8+CF2, Al Mawq, Al Seeb, Muscat, Oman
Email:
sales@wabbyd.com
Phone:
96872225925
BYD SERVICE CENTER
H9FM+627, Ghala, Muscat, Oman
Email:
sales@wabbyd.com
Phone:
96824625027
lowered.includes(keyword)); } // ✅ Common helper: Trims and checks for empty value function isEmptyOrOnlySpaces(value) { return !value || value.trim().length === 0; } // ✅ Name Validator $.validator.addMethod("validName", function(value, element) { if (isEmptyOrOnlySpaces(value)) return false; const trimmed = value.trim(); if (trimmed.length < 2 || trimmed.length > 255) return false; // Allow Unicode letters, spaces, hyphens, apostrophes const nameRegex = /^[\p{L}\p{M}\s'-]+$/u; if (!nameRegex.test(trimmed)) return false; // Reject numbers if (/\d/.test(trimmed)) return false; if (containsDangerousKeywords(trimmed)) return false; return true; }, "Invalid name format"); // ✅ Email Validator $.validator.addMethod("validEmail", function(value, element) { if (isEmptyOrOnlySpaces(value)) return false; const trimmed = value.trim(); const emailRegex = /^[a-zA-Z0-9.!#$%&'*+/=?^_`{|}~-]+@([a-zA-Z0-9-]+\.)+[a-zA-Z]{2,}$/; if (!emailRegex.test(trimmed)) return false; if (containsDangerousKeywords(trimmed)) return false; if (trimmed.length > 254) return false; return true; }, "Invalid email format"); // ✅ Phone Number Validator $.validator.addMethod("validPhoneNumber", function(value, element) { if (isEmptyOrOnlySpaces(value)) return false; const trimmed = value.trim(); if (containsDangerousKeywords(trimmed)) return false; // Remove common separators const normalized = trimmed.replace(/[\s()-]/g, ''); if (!/^\+?\d+$/.test(normalized)) return false; const digitsOnly = normalized.replace(/^\+/, ''); if (digitsOnly.length < 7 || digitsOnly.length > 15) return false; if (/^0+$/.test(digitsOnly)) return false; // intlTelInput validation const iti = window.intlTelInputGlobals?.getInstance(element); if (iti && !iti.isValidNumber()) { return false; } return true; }, "Invalid phone number format"); $.validator.addMethod("validMessage", function(value, element) { const trimmed = value.trim(); if (isEmptyOrOnlySpaces(trimmed)) return false; if (trimmed.length < 2 || trimmed.length > 1000) { console.log("Rejected due to length"); return false; } const alphaNumericCheck = /[a-zA-Z0-9\u00C0-\uFFFF]/; if (!alphaNumericCheck.test(trimmed)) return false; if (containsDangerousKeywords(trimmed)) return false; return true; }, "Invalid message format"); $.validator.addMethod("validPassword", function(value, element) { if (!value) return false; const trimmed = value.trim(); if (trimmed.length < 8 || trimmed.length > 64) return false; let hasLower = /[a-z]/.test(trimmed); let hasUpper = /[A-Z]/.test(trimmed); let hasNumber = /\d/.test(trimmed); let hasSpecial = /[!@#$%^&*(),.?":{}|<>]/.test(trimmed); let typesCount = [hasLower, hasUpper, hasNumber, hasSpecial].filter(Boolean).length; if (typesCount < 3) return false; if (/(.)\1\1/.test(trimmed)) return false; return true; }, "Password must be 8-64 chars, mix 3 types (lower, upper, number, special), no repeat."); // ✅ Postal/Zip Code Validator $.validator.addMethod("validPostalZipCode", function(value, element) { const trimmed = value.trim(); if (isEmptyOrOnlySpaces(trimmed)) return false; if (trimmed.length > 10) return false; const zipCodeRegex = /^[A-Za-z0-9\s]+$/; if (!zipCodeRegex.test(trimmed)) return false; if (containsDangerousKeywords(trimmed)) return false; return true; }, "Invalid Postal/ZIP Code. Only letters, numbers, and spaces allowed, max 10 characters.");