Xpages电话号码

Xpages phone number

本文关键字:电话号码 Xpages      更新时间:2023-09-26

在我的应用程序中,我有一个字段必须存储电话号码。字段中不能包含字符,只能包含数字。问题是格式类似于:

0752344234

如果我添加这样的内容,Xpages将把字段保存为:752344234,不带0。

问题:我可以用什么方法在不使用字符串类型字段的情况下将0加在数字前面?

使用validateConstraint验证器:

<xp:inputText
    id="inputText1"
    value="..."
    disableClientSideValidation="true">
    <xp:this.validators>
        <xp:validateConstraint message="Please enter only digits for phone number">
            <xp:this.regex><![CDATA[^[0-9]*$]]></xp:this.regex>
        </xp:validateConstraint>
    </xp:this.validators>
</xp:inputText>

正则表达式^[0-9]*$接受任意数量的数字和一个空字符串。如果需要至少一个数字,则用+替换*

您不需要根据需要设置输入文本字段。

您可以决定验证消息的显示位置。将选项disableClientSideValidation="false"设置为在客户端将消息显示为对话框,或将选项disableClientSideValidation="true"设置为将消息放入xp:message/xp:messages控件。

这是一个简单的例子,我使用自定义验证器来检查插入值是否只包含数值。您还可以使用正则表达式来检查值是否具有指定的形式。

<?xml version="1.0" encoding="UTF-8"?>
    <xp:view xmlns:xp="http://www.ibm.com/xsp/core">
        <xp:inputText id="inputText1" required="true">
            <xp:this.validators>
                <xp:customValidator>
                    <xp:this.validate><![CDATA[#{javascript:for(var i=0; i< value.length; i++){
        if(isNaN(value.charAt(i))){
            return false
        }
    }}]]></xp:this.validate>
                </xp:customValidator>
            </xp:this.validators>
        </xp:inputText>
        <xp:button id="button1" value="Validate">
            <xp:eventHandler event="onclick" submit="true"
                refreshMode="complete" immediate="false" save="true">
                <xp:this.action><![CDATA[#{javascript://}]]></xp:this.action>
            </xp:eventHandler>
        </xp:button>
        <xp:message id="message1" for="inputText1"></xp:message>
    </xp:view>

要使用自定义验证器,您还必须根据需要标记您的编辑框。