Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/31.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在一行中找到10位数字,将其格式化为电话号码ASP.NET_Asp.net_String_Numbers_Format - Fatal编程技术网

在一行中找到10位数字,将其格式化为电话号码ASP.NET

在一行中找到10位数字,将其格式化为电话号码ASP.NET,asp.net,string,numbers,format,Asp.net,String,Numbers,Format,我有一个表格,是通过一个网站,生成电子邮件提交。表单中的所有字段都作为一个大字符串“strMsgInfo”存储在ASP代码中。我想解析字符串,在一行中找到10个数字,这是电话号码字段,然后将这10个数字格式化为000-000-0000,这样当电子邮件出现在我的手机上时,我就可以单击电话号码,而不必手动键入 我还想让绳子的其余部分保持圆滑 这可能吗?是的,使用for循环迭代所有字符。如果第一个字符是数字,请检查下一个字符是否也是数字。一直走到10岁 编辑: 请注意,在索引3处插入后,第二个-不是位

我有一个表格,是通过一个网站,生成电子邮件提交。表单中的所有字段都作为一个大字符串“strMsgInfo”存储在ASP代码中。我想解析字符串,在一行中找到10个数字,这是电话号码字段,然后将这10个数字格式化为000-000-0000,这样当电子邮件出现在我的手机上时,我就可以单击电话号码,而不必手动键入

我还想让绳子的其余部分保持圆滑


这可能吗?

是的,使用for循环迭代所有字符。如果第一个字符是数字,请检查下一个字符是否也是数字。一直走到10岁

编辑:

请注意,在索引3处插入后,第二个-不是位于7,而是位于8,因为字符串的长度已经增加了1。因为在索引x处插入将在该位置插入,所以从该位置开始的所有字符都会上移一位

问候,


Niru

理解,但如果在if语句之前或之后的字符串中也有字母用于检查数字,那么如何在保持字符串其余部分不动的情况下仅格式化这10个数字?这不起作用,因为如果在数字出现之前字符串中添加了元素,您正在用格式化的数字替换整个字符串,因此先前字符串中的内容现在已被删除。上面的代码没有向字符串添加任何内容。代码通过循环检查字符串是否出现第一个数字。每次找到一个号码时,该号码都存储在telnr中。如果下一次循环运行时,下一个字符不是数字,则bool continue设置为false,因为数字后面没有数字。最后,我将用字符串本身替换您的字符串,只是这次找到的数字出现被替换为编辑过的数字出现。最后一个问题。TelNR需要初始化为整数,是吗?否,您可以将其初始化为字符串,在向字符串添加字符串之后,否则您必须强制转换该字符串
for i = 0 to string.length - 1
    if checkisnumber(string[i]) then
        telnr &= string[i]
        continue = true
    else
        continue = false
    end if
    if telnr.length = 10 and continue = true then
        end for
    else
        telnr = ""
    end if
next
string = string.replace(telnr, telnr.Insert(3, "-").Insert(8, "-")