我想问问
这里我有一个HTML输入,我把它设置为“文本”类型。然后我想让用户输入10个数字,原来的**'123 - 456 - 7890'将变成'123 -456- 7890'。然后当用户输入第11个数字时,它将以分号的形式添加一个自动分隔符(;),所以它变成了'123 -456-7890; 1英尺**
我的问题是我如何在javascript中使用regex?有没有一种方法也可以使用一个只有数字和特殊字符(如-等)可以输入(字符串和字符不能)的regex?
var value = document.getElementById($parameters.InputId).value;
value=value.replaceAll(/[^0-9]/g,"");
value=value.replaceAll(",","")
value = value.replace(/ /g,"");
value = value.toString().split( /(?=(?:\d{3})+(?:\.|$))/g ).join( "," );
以前我使用过这样的正则表达式,但不是我想要的方式,当用户输入10个数字时,原来是**'123 - 456 - 7890'将变为'123 -456- 7890'。然后当用户输入第11个数字时,它将以分号(;),所以它变成了'123 -456-7890; 1英尺**
1条答案
按热度按时间zqry0prt1#
要按照您所述在JavaScript中使用正则表达式来设置数字字符串的格式,可以使用replace()方法并指定与要设置格式的数字模式相匹配的正则表达式。在这种情况下,您需要在字符串的第三和第六个字符后插入连字符(-),并在字符串的第三和第六个字符后插入分号(;)在第十个字符之后。
下面是一个示例,说明如何使用replace()方法和正则表达式来设置数字字符串的格式,如下所述:
在此示例中,对输入字符串调用replace()方法,并向其传递与要设置格式的数字的模式相匹配的正则表达式。正则表达式使用捕获组来匹配要设置格式的三组数字,然后使用替换字符串中的$1、$2和$3占位符在适当的位置插入连字符和分号。