JavaScript正则表达式:匹配货币输入字符串开头或结尾以外的所有负数
对于货币输入,我想替换所有不在字符串开头的减号输入,或者当它是最后一个字符时,前面没有逗号 在输入事件中,我已经为一些其他无效输入调用了一个替换为简单正则表达式:JavaScript正则表达式:匹配货币输入字符串开头或结尾以外的所有负数,javascript,regex,Javascript,Regex,对于货币输入,我想替换所有不在字符串开头的减号输入,或者当它是最后一个字符时,前面没有逗号 在输入事件中,我已经为一些其他无效输入调用了一个替换为简单正则表达式: input.replace(/[^0-9\.\,\-]/g, '') .replace('.', ','); 如果我能扩展这个正则表达式来去除无效的缺点,那就太好了 所需行为的一些示例: 50-50->5050 50,00-->50,00 -5-0,--50,- 编辑:结束或开始处的双减
input.replace(/[^0-9\.\,\-]/g, '')
.replace('.', ',');
如果我能扩展这个正则表达式来去除无效的缺点,那就太好了
所需行为的一些示例:
->50-50
5050
->50,00-
50,00
-50,--5-0,-
->-50,00
-50,00
->50,-
50,-
-(?=)
开始,但它仍然匹配第一个字符
此外,我发现它的作用与此相反(开始和结束时不允许使用负号),但这仍然会匹配整个字符串。而不是分离状态
任何帮助都将不胜感激。功能正常吗?这应该可以做到:
function removeMinus(str) {
var prefix = str.startsWith("-") ? "-" : "";
var postfix = str.endsWith(",-") ? "-" : "";
return prefix + str.split("-").join("") + postfix
}
函数可以吗?这应该可以做到:
function removeMinus(str) {
var prefix = str.startsWith("-") ? "-" : "";
var postfix = str.endsWith(",-") ? "-" : "";
return prefix + str.split("-").join("") + postfix
}
对特定的正则表达式模式使用以下方法:
var replacehypen=函数(str){
返回str.replace(/(\d)-|(-)/g,$1$2');
};
console.log(replacehypen('50-50'));
控制台日志(替换连字符('50,00-');
console.log(replacehypen('-5-0,-'));
console.log(replacehypen('-50,00'));
console.log(replacehypen('50,-')代码>对特定的正则表达式模式使用以下方法:
var replacehypen=函数(str){
返回str.replace(/(\d)-|(-)/g,$1$2');
};
console.log(replacehypen('50-50'));
控制台日志(替换连字符('50,00-');
console.log(replacehypen('-5-0,-'));
console.log(replacehypen('-50,00'));
console.log(replacehypen('50,-')代码>您可以使用word boundary\b
来完成此操作
\b
匹配单词边界。这是一个单词字符不在另一个单词字符后面或前面的位置,例如在字母和空格之间
var regex=/\b-+\b/g;
console.log(“50-50.replace(regex)”)
console.log(“50,00”。替换(regex,))
console.log(“-5-0,-.replace(regex)”)
console.log(“-5----6-”。替换(regex,”)
console.log(“-6--66-6,-.replace(regex)”)
您可以使用word boundary\b
来执行此操作
\b
匹配单词边界。这是一个单词字符不在另一个单词字符后面或前面的位置,例如在字母和空格之间
var regex=/\b-+\b/g;
console.log(“50-50.replace(regex)”)
console.log(“50,00”。替换(regex,))
console.log(“-5-0,-.replace(regex)”)
console.log(“-5----6-”。替换(regex,”)
log(“-6--66-6,-.replace(regex)”)
这看起来很有希望,但它仍然允许在开始和结束时使用双减号。也许我不清楚。更新了问题。事实上,是的,你的问题不够清楚,连字符都没有。现在,检查我的更新,它适用于双连字符也很好。谢谢。这看起来很有希望,但它仍然允许在开始和结束时使用双负。也许我不清楚。更新了问题。事实上,是的,你的问题不够清楚,连字符都没有。现在,检查我的更新,它适用于双连字符也很好。谢谢。信息丰富,但是这仍然允许在结尾处使用减号,而不是在开始或结束处使用逗号和双连字符。也许我可以以此作为开始。谢谢。信息丰富,但是这仍然允许在结尾处使用减号,而不是在开始或结束处使用逗号和双连字符。也许我可以以此作为开始。谢谢