Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/451.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替换函数替换字符串第一个后面的所有句点?_Javascript_Reactjs_Regex_Replace - Fatal编程技术网

如何使用javascript替换函数替换字符串第一个后面的所有句点?

如何使用javascript替换函数替换字符串第一个后面的所有句点?,javascript,reactjs,regex,replace,Javascript,Reactjs,Regex,Replace,您好,我正在尝试通过(替换)在开头省略字母和分号的输入,这已经过验证,但除此之外,我需要您不要让我在输入第二个句点后再输入第二个句点,我希望您能帮助我: 我的代码: (我正在使用onInput方法捕获输入) 例: 您可以尝试以下正则表达式: /[^\d,]|(?您可以尝试以下正则表达式: /[^\d,]|(?您可以匹配您想要删除的内容,并使用捕获组来保存您想要保留的内容 在更换使用组1中 ^\D*(\d+[.,]?\d*)?.* ^字符串的开头 \D*匹配除应删除的数字之外的任何字符 (Ca

您好,我正在尝试通过(替换)在开头省略字母和分号的输入,这已经过验证,但除此之外,我需要您不要让我在输入第二个句点后再输入第二个句点,我希望您能帮助我:

我的代码: (我正在使用onInput方法捕获输入)

例:


您可以尝试以下正则表达式:


/[^\d,]|(?您可以尝试以下正则表达式:


/[^\d,]|(?您可以匹配您想要删除的内容,并使用捕获组来保存您想要保留的内容

在更换使用组1中

^\D*(\d+[.,]?\d*)?.*
  • ^
    字符串的开头
  • \D*
    匹配除应删除的数字之外的任何字符
  • Capturegroup 1
    • \d+[,]?\d*
      匹配1+个数字,可选
      和可选数字
  • )?
    关闭该组并将其设置为可选
  • *
    匹配它后面应该删除的任何字符

这样,输入也不能只包含点或逗号

const regex=/^\D*(\D+[,]?\D*)?*/;
常量输入=document.getElementById(“myInput”);
const updateValue=ev=>ev.target.value=ev.target.value.replace(regex,“$1”)
input.addEventListener('input',updateValue);

您可以匹配您要删除的内容,并使用捕获组来保存您要保留的内容

在更换使用组1中

^\D*(\d+[.,]?\d*)?.*
  • ^
    字符串的开头
  • \D*
    匹配除应删除的数字之外的任何字符
  • Capturegroup 1
    • \d+[,]?\d*
      匹配1+个数字,可选
      和可选数字
  • )?
    关闭该组并将其设置为可选
  • *
    匹配它后面应该删除的任何字符

这样,输入也不能只包含点或逗号

const regex=/^\D*(\D+[,]?\D*)?*/;
常量输入=document.getElementById(“myInput”);
const updateValue=ev=>ev.target.value=ev.target.value.replace(regex,“$1”)
input.addEventListener('input',updateValue);

您可以将一个函数作为第二个参数传递给。我创建了一个
count
变量,该变量对于找到的每个匹配项都会递增。第一个匹配项是
0
,它是一个快速值,之后将是truthy

const input=document.querySelector('input');
input.addEventListener(“更改”,()=>{
让计数=0;
input.value=input.value.replace(/[.]/g,(匹配)=>count++?'':匹配);
});
kbd{背景色:#eee;边框半径:3px;边框:1px实心#b4b4;框阴影:0 1px 1px rgba(0,0,0,2),0 2px 0 rgba(255,255,255,7)插入;颜色:#333;显示:内联块;字体大小:0.85em;字体重量:700;线条高度:1;填充:2px 4px;空白:nowrap}

(按Enter键触发事件)
您可以将函数作为第二个参数传递给。我创建了一个
count
变量,该变量对于找到的每个匹配项都会递增。第一个匹配项是
0
,这是一个快速值,之后它将是真实值

const input=document.querySelector('input');
input.addEventListener(“更改”,()=>{
让计数=0;
input.value=input.value.replace(/[.]/g,(匹配)=>count++?'':匹配);
});
kbd{背景色:#eee;边框半径:3px;边框:1px实心#b4b4;框阴影:0 1px 1px rgba(0,0,0,2),0 2px 0 rgba(255,255,255,7)插入;颜色:#333;显示:内联块;字体大小:0.85em;字体重量:700;线条高度:1;填充:2px 4px;空白:nowrap}

(按Enter键触发事件)
您是否试图阻止用户输入第二个句点?因此,我可以执行1.111111111,但我可以执行1.111.111。因此,如果我要添加第二个句点,您是否希望返回错误或只是中断输入?或者您是否接收整个字符串并删除第一个句点之后的所有句点?而不是阻止用户输入某些字符rs通常最好是让他们去做,然后提醒他们,一旦输入失去焦点,或者用户试图提交数据,输入无效。当直接使用输入时,用户可能会认为他们的键盘坏了或者有什么奇怪的事情发生。你是想阻止用户进入第二个句点吗?所以我可以做1.111111111但我可以做1.111.111。所以,如果我要添加第二个句点,你是想返回错误还是只想切断输入?还是要输入整个字符串并删除第一个句点之后的所有句点?与其阻止用户输入某些字符,不如让他们输入,然后在输入后提醒他们输入无效put失去焦点,或者用户试图提交数据。当用户直接使用输入时,可能会认为键盘坏了,或者发生了什么奇怪的事情。
^\D*(\d+[.,]?\d*)?.*