Nie*_*che 1 coldfusion coldfusion-9
我们正在寻找一种方法来标准化输入表格中输入的电话号码,例如,(444)555-666.现在您可以输入任何格式,例如4445556666或444-555-6666,并且没有标准化.我希望在将数字输入数据库时将数字转换为前一种格式.
以下是表单的HTML代码:
<tr>
<td align="right">
<label for="phone_number">Telephone:</label>
</td>
<td>
<input type="text" name="phone_number" value="#form.phone_number#" />
</td>
</tr>
Run Code Online (Sandbox Code Playgroud)
这与所有其他数据一起使用cfquery INSERT INTO命令输入数据库.如果需要,我可以提供该代码.这是一个简短的版本:
INSERT INTO Schedule_Registrations(
phone_number
)
VALUES(
'#FORM.phone_number#'
)
Run Code Online (Sandbox Code Playgroud)
对此的任何想法将不胜感激.
我选择处理此问题的方法是将原始数字存储在数据库中,然后在网页上显示我想要的内容.要规范化数字,请使用简单的正则表达式:
<cfset cleanPhoneNumber = reReplace(form.phoneNumber, "[^0-9]", "", "ALL")>
Run Code Online (Sandbox Code Playgroud)
将cleanPhoneNumber存储在数据库中,然后使用简单的格式化函数来显示它:
<cffunction name="formatPhoneNumber">
<cfargument name="phoneNumber" required="true">
<cfif len(phoneNumber) EQ 10>
<!--- This only works with 10-digit US/Canada phone numbers --->
<cfreturn "(#left(phoneNumber, 3)#) #mid(phoneNumber, 4, 3)#-#right(phoneNumber, 4)#">
</cfif>
<cfreturn phoneNumber>
</cffunction>
Run Code Online (Sandbox Code Playgroud)
面临的挑战是,在美国之外,没有标准化的数字格式化方法(我发现).如果您允许用户在电话号码字段中输入分机,也要小心.
| 归档时间: |
|
| 查看次数: |
4215 次 |
| 最近记录: |