我有一个输入字段,它应该只接受货币语法中使用的字符(美元符号、数字、逗号和小数)。我如何编写我的正则表达式来检查一个字符串是否包含至少一个不是来自上面列出的字符的字符?
我试过以下方法,但这个表达式的问题是,如果字符串中存在一个有效字符,它会抛出“else”语句。 (unitPriceVal 是用户输入的字符串)
我想编写一个正则表达式来检查整个字符串是否包含有效货币,如果为真则运行 else 语句
validCurrency = /([0-9\$.,])/;
if (!unitPriceVal.match(validCurrency) || unitPriceVal == "") {
unitPrice.setValueState("Error");
} else {
unitPrice.setValueState("None");
}
},
最佳答案
I want to write a regex that checks if the WHOLE string consists of the valid Currency
要检查整个字符串,使用 ^
和 $
将匹配锚定到输入的开头和结尾,并确保中间的是一个序列 ( +
) 允许的字符数:
/^[\d$.,]+$/;
你不需要括号。您也不需要转义字符集中的 $
。最后,您可以使用 \d
作为数字。
通常,最好使用 input
元素的 pattern
属性来执行此检查。在这种情况下,您不需要 anchor (它们是隐含的):
<input pattern="[\d$.,]+">
关于javascript - 如何使用 REGEX 找到字符的一个实例?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40646153/