电话号码可视化模式 - space 每两个号码后
Tel Number visualization pattern - space after every second number
我有一个 Editabe 数据表。用户将电话号码插入输入文本框的 tel 列并单击 ok 按钮后,我需要将其可视化如下:
输入 390239266655
输出 +39 02 39 26 66 55
所以我需要在每个第二个数字后面放一个space,并将+放在开头。
我该怎么做?
以下是我的验证:
<ui:define name="validation-tag">
<f:validateRegex pattern="[0-9+]*" for="contactPhoneNumber" />
</ui:define>
我们不得不写一个转换器,这里是解决方案:
@FacesConverter(value = "phoneConverter")
public class PhoneConverter
implements
Converter {
@Override
public Object getAsObject(
FacesContext context,
UIComponent component,
String value) {
String stringToDisplay = null;
//
// if (value != null && !value.equals("") && value.startsWith("+")) {
// stringToDisplay = value.substring(1).trim();
// }
return stringToDisplay;
}
@Override
public String getAsString(
FacesContext context,
UIComponent component,
Object value) {
String stringToDisplay = (String) value;
String resultToDisplay = null;
try {
// if (!stringToDisplay.startsWith("+")) {
if (stringToDisplay != null && !stringToDisplay.equals("")) {
resultToDisplay = getPhoneNumbFormat(stringToDisplay);
}
}
} catch (Exception e) {
log.error("PhoneConverter replaceAll failed!!! object:={} NOT FOUND!!!", stringToDisplay, e);
}
return resultToDisplay;
}
private String getPhoneNumbFormat(
String phoneNumber) {
String resultToDisplay = null;
if (!phoneNumber.startsWith("+")) {
resultToDisplay = "+" + phoneNumber.substring(0, 2).concat(" ") + phoneNumber.substring(2).replaceAll("(.{2})(?!$)", " ");
} else if (!phoneNumber.substring(0, 3).startsWith(" ")) {
resultToDisplay = phoneNumber.substring(0, 3).concat(" ") + phoneNumber.substring(3).replaceAll("(.{2})(?!$)", " ");
}
return resultToDisplay;
}
}
我有一个 Editabe 数据表。用户将电话号码插入输入文本框的 tel 列并单击 ok 按钮后,我需要将其可视化如下:
输入 390239266655
输出 +39 02 39 26 66 55
所以我需要在每个第二个数字后面放一个space,并将+放在开头。 我该怎么做?
以下是我的验证:
<ui:define name="validation-tag">
<f:validateRegex pattern="[0-9+]*" for="contactPhoneNumber" />
</ui:define>
我们不得不写一个转换器,这里是解决方案:
@FacesConverter(value = "phoneConverter")
public class PhoneConverter
implements
Converter {
@Override
public Object getAsObject(
FacesContext context,
UIComponent component,
String value) {
String stringToDisplay = null;
//
// if (value != null && !value.equals("") && value.startsWith("+")) {
// stringToDisplay = value.substring(1).trim();
// }
return stringToDisplay;
}
@Override
public String getAsString(
FacesContext context,
UIComponent component,
Object value) {
String stringToDisplay = (String) value;
String resultToDisplay = null;
try {
// if (!stringToDisplay.startsWith("+")) {
if (stringToDisplay != null && !stringToDisplay.equals("")) {
resultToDisplay = getPhoneNumbFormat(stringToDisplay);
}
}
} catch (Exception e) {
log.error("PhoneConverter replaceAll failed!!! object:={} NOT FOUND!!!", stringToDisplay, e);
}
return resultToDisplay;
}
private String getPhoneNumbFormat(
String phoneNumber) {
String resultToDisplay = null;
if (!phoneNumber.startsWith("+")) {
resultToDisplay = "+" + phoneNumber.substring(0, 2).concat(" ") + phoneNumber.substring(2).replaceAll("(.{2})(?!$)", " ");
} else if (!phoneNumber.substring(0, 3).startsWith(" ")) {
resultToDisplay = phoneNumber.substring(0, 3).concat(" ") + phoneNumber.substring(3).replaceAll("(.{2})(?!$)", " ");
}
return resultToDisplay;
}
}