RegExp,如何在javascript中压缩字符串以创建动态正则表达式?

RegExp,如何在javascript中压缩字符串以创建动态正则表达式?,javascript,regex,expression,Javascript,Regex,Expression,如何在javascript中压缩字符串以创建动态正则表达式? 注释行运行良好 var numericValidator = function (value, callback) { var decimalSymbol = ServerVar.NumberDecimalSeparator == "." ? "\." : ","; console.log(decimalSymbol); var regExNum = new RegExp("^-?(?:\d+|\d{1,3

如何在javascript中压缩字符串以创建动态正则表达式? 注释行运行良好

var numericValidator = function (value, callback)
{
    var decimalSymbol = ServerVar.NumberDecimalSeparator == "." ? "\." : ",";

    console.log(decimalSymbol);

    var regExNum = new RegExp("^-?(?:\d+|\d{1,3}(?:[\s\]\d{3})+)(?:[" + decimalSymbol + "]\d+)?");
    if (regExNum.test(value)) {
    //if (/^-?(?:\d+|\d{1,3}(?:[\s]\d{3})+)(?:[\.,]\d+)?$/.test(value)) {
        if (callback) callback(true);
        return true;
    }

    if (callback) callback(false);
    return false;
};
使用两个逃逸字符

var regExNum = new RegExp("^-?(?:\\d+|\\d{1,3}(?:[\\s\\]\\d{3})+)(?:[" + decimalSymbol + "]\\d+)?");
使用两个逃逸字符

var regExNum = new RegExp("^-?(?:\\d+|\\d{1,3}(?:[\\s\\]\\d{3})+)(?:[" + decimalSymbol + "]\\d+)?");

我建议使用非常适合这种情况的ES6字符串

var numericValidator = function (value, callback)
{
    var decimalSymbol = ServerVar.NumberDecimalSeparator == "." ? "\." : ",";

    console.log(decimalSymbol);
    var regExNum = new RegExp(`^-?(?:\d+|\d{1,3}(?:[\s\]\d{3})+)(?:[${decimalSymbol}]\d+)?`);        
    if (regExNum.test(value)) {
    //if (/^-?(?:\d+|\d{1,3}(?:[\s]\d{3})+)(?:[\.,]\d+)?$/.test(value)) {
        if (callback) callback(true);
        return true;
    }

    if (callback) callback(false);
    return false;
};
这样的字符串由倒勾(`)分隔


注意使用
${}
在字符串中嵌入作用域表达式。

我建议使用非常适合这种情况的ES6字符串

var numericValidator = function (value, callback)
{
    var decimalSymbol = ServerVar.NumberDecimalSeparator == "." ? "\." : ",";

    console.log(decimalSymbol);
    var regExNum = new RegExp(`^-?(?:\d+|\d{1,3}(?:[\s\]\d{3})+)(?:[${decimalSymbol}]\d+)?`);        
    if (regExNum.test(value)) {
    //if (/^-?(?:\d+|\d{1,3}(?:[\s]\d{3})+)(?:[\.,]\d+)?$/.test(value)) {
        if (callback) callback(true);
        return true;
    }

    if (callback) callback(false);
    return false;
};
这样的字符串由倒勾(`)分隔


注意使用
${}
在字符串中嵌入作用域表达式。

啊,谢谢,我想我也必须双转义小数?@Josh是的,你需要。啊,谢谢,我想我也必须双转义小数?@Josh是的,你需要。