Regex 允许+;仅在开始时

Regex 允许+;仅在开始时,regex,Regex,通过使用上述正则表达式,我将输入限制为0-9或+ 但我只需要在字符串的中间或结尾限制'+ '符号。 请为我提供一个解决方案。在字符类中有插入符号(^)意味着您希望匹配不在该类中的任何内容 您可能希望将正则表达式更改为: var inputValue='+98765+' inputValue = inputValue.replace(/[^+0-9]/g, ''); 这与以+开头,后跟非数字字符的模式匹配 现在+必须位于匹配字符串的开头。您可以使用: \+[^0-9]+ 在请求有关替换的帮助时

通过使用上述正则表达式,我将输入限制为0-9或+

<>但我只需要在字符串的中间或结尾限制'+ '符号。

请为我提供一个解决方案。

在字符类中有插入符号(
^
)意味着您希望匹配不在该类中的任何内容

您可能希望将正则表达式更改为:

var inputValue='+98765+'
inputValue = inputValue.replace(/[^+0-9]/g, '');
这与以
+
开头,后跟非数字字符的模式匹配

现在
+
必须位于匹配字符串的开头。

您可以使用:

\+[^0-9]+

在请求有关
替换的帮助时,所需的输出将非常有用。@Stribizev:预期输出为+98765谢谢,但对我来说,即使第一个字符不是+,也不应删除。@NatarajanL请提供示例。如果我输入的字符串为1234567890+xyx,则应删除+xyz。如果我输入12345367,则不应删除任何内容。@Natarajann那么为什么不
[^0-9]
?如果我输入+1234567,也不应删除任何字符。非常感谢您的解决方案。它对我来说很好。我无法接受它,因为我没有足够的声誉点数。接受你不需要声誉。你们只需要点击我答案左边的勾号,它就会变成绿色。您还将获得接受的代表。
var inputValue='+98765+';
inputValue = inputValue.replace(/(?!^)\+|[^\d+]+/mg, '');
//=> +98765