RegEx进行成本领域验证

时间:2018-06-13 11:42:50

标签: regex servicenow

我可以在regexp变量中使用什么来确保字段仅包含数字,但也允许完整停止(句点)和各种货币符号(£,$)

希望你能帮忙!

由于

这是我到目前为止所拥有的:

var validRegExp = /^[0-9]$/;

1 个答案:

答案 0 :(得分:1)

我可能会选择以下内容:

/^\d+(\.[\d]+){0,1}[€$]{0,1}$/gm

它匹配至少一个数字,然后允许你在那里的某处放置零或一个句点,然后在句点之后需要至少一个数字。在它结尾处,您可以将其中一个货币符号明确命名。你必须添加你想要支持的所有内容。

让我们尝试以下列表:

3.50€
2$
.5
34.4.5
2$€

afasf

您将看到只有前两个匹配正确。您的最终输出是组0中的输出。



const regex = /^\d+(\.[\d]+){0,1}[€$]{0,1}$/gm;
const str = `3.50€
2\$
.5
34.4.5
2\$€

afasf
`;
let m;

while ((m = regex.exec(str)) !== null) {
    // This is necessary to avoid infinite loops with zero-width matches
    if (m.index === regex.lastIndex) {
        regex.lastIndex++;
    }
    
    // The result can be accessed through the `m`-variable.
    m.forEach((match, groupIndex) => {
        console.log(`Found match, group ${groupIndex}: ${match}`);
    });
}




相关问题