Address field validation-- how to allow only English/single-byte characters? Using the Address Field module, I have created a country/state/city formatter to allow users to input their location.

On my site, about half of the users are Japanese.

Address Field provides a select list of countries by default, and I have added select lists for states/provinces.

However, users input cities in a standard text field.  I am using Location Taxonomize to tag users with their cities, so I want all cities to be in the same language (in this case, English).  I already have some help text on the form that asks users to input their data in English, but I'd like to add form validation to make sure.

Many Japanese sites do this by checking whether the user input is single-byte or double-byte; since Japanese characters are single-byte and standard English characters are single-byte, this is sufficient for my purposes.

Is there a function for checking this in the form API?
You could compare the length of the string by using strlen which doesn't account for double-byte characters and then using drupal_strlen which does account for double-byte characters. If those functions think the length is different then there are some double-byte characters in there.

That comparison would need to go in a custom form_validate function.