I am writing regex for a javascript application (Qualtrics) and can't figure out how to create regex for a phone number field that may or may not be international and may be blank. So the requirements are possible "+","0-9","-",".",""

If I can figure it out, I'd also like to create flexibility for spaces before and after the entry.

有帮助吗?

解决方案

If you just need an arbitrary number of characters including numbers, +, -, . and space (and also assuming you wish to match the entire input), then fairly simply:

^[0-9\-+.\s]*$

If your looking for something to validate placement of dots, dashes, spaces etc. and validate length, the regex to accomplish that tends to get very complicated and silly. For example, this:

^(?:(?:+?1\s*(?:[.-]\s*)?)?(?:(\s*([2-9]1[02-9]|[2-9][02-8]1|[2-9][02-8][02-9])\s*)|([2-9]1[02-9]|[2-9][02-8]1|[2-9][02-8][02-9]))\s*(?:[.-]\s*)?)?([2-9]1[02-9]|[2-9][02-9]1|[2-9][02-9]{2})\s*(?:[.-]\s*)?([0-9]{4})(?:\s*(?:#|x.?|ext.?|extension)\s*(\d+))?$

Seems to be a standard implementation to handle a subset of the set you wish to recognize, if I understand correctly.

An approach like that outlined in this question might be a more sensible solution.

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top