html 如何使用Regex(Javascript)使输入自动写入格式?

jaql4c8m  于 2022-12-16  发布在  Java
关注(0)|答案(1)|浏览(104)

我想问问
这里我有一个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英尺**

zqry0prt

zqry0prt1#

要按照您所述在JavaScript中使用正则表达式来设置数字字符串的格式,可以使用replace()方法并指定与要设置格式的数字模式相匹配的正则表达式。在这种情况下,您需要在字符串的第三和第六个字符后插入连字符(-),并在字符串的第三和第六个字符后插入分号(;)在第十个字符之后。
下面是一个示例,说明如何使用replace()方法和正则表达式来设置数字字符串的格式,如下所述:

// The input string
const input = '12345678901';

// Use the replace() method and a regular expression to insert
// hyphens (-) after the third and sixth characters, and a semicolon (;)
// after the tenth character
const output = input.replace(/(\d{3})(\d{3})(\d{4})/, '$1-$2-$3;');

// Output: "123-456-7890;1"
console.log(output);

在此示例中,对输入字符串调用replace()方法,并向其传递与要设置格式的数字的模式相匹配的正则表达式。正则表达式使用捕获组来匹配要设置格式的三组数字,然后使用替换字符串中的$1、$2和$3占位符在适当的位置插入连字符和分号。

相关问题