Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/19.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
javascript-Don';不允许一行中有多个相同的字符_Javascript_Regex_String_Replace - Fatal编程技术网

javascript-Don';不允许一行中有多个相同的字符

javascript-Don';不允许一行中有多个相同的字符,javascript,regex,string,replace,Javascript,Regex,String,Replace,我对正则表达式不太熟悉。我有,只允许输入数字或逗号。这很有效 area.value=area.value.replace(/[^0-9,]/g,''); 它会立即删除除逗号和数字以外的任何内容。我还希望防止在一行中输入多个逗号。例如,如果在文本区域中输入或粘贴1、2、3,则会将其更改为1、2、3。我可以在正则表达式中添加什么来实现这一点。 多谢各位 area.value=area.value.replace(/[^0-9,]/g,''); area.value= area.value.repl

我对正则表达式不太熟悉。我有
,只允许输入数字或逗号。这很有效

area.value=area.value.replace(/[^0-9,]/g,'');
它会立即删除除逗号和数字以外的任何内容。我还希望防止在一行中输入多个逗号。例如,如果在文本区域中输入或粘贴1、2、3,则会将其更改为1、2、3。我可以在正则表达式中添加什么来实现这一点。 多谢各位

area.value=area.value.replace(/[^0-9,]/g,'');
area.value= area.value.replace(/,+/g,',');

,+
表示连在一起的连续逗号,如、、、、、这里有一个替换语句:

"1,,2,,a,3,4".replace(/[^\d,]|,(?=\D*,)/g, "")
工作原理:


[^\d,]
[0-9,]
相同,然后我们还匹配任何逗号,后跟零个或多个非数字(
\d
)和一个逗号。
(?=
开始了一个积极的前瞻组。

如果你不介意两个replace语句,你可以添加
。replace(/,+//g,”)
…使用一个表达式进行操作有点复杂。注意:对DOM属性进行连续的读/修改/写循环通常不是一个好主意。最好执行一次读取(对于局部变量),两次修改,然后一次写入。替代方法是
area.value=area.value.replace(…).replace(…)