带占位符的正则表达式

时间:2018-07-30 10:23:04

标签: javascript

var scale = $('#'+fields[i].id+'-scale').val();
var decimalOnly = '/^\s*-?[1-9]\d*(\,\d{1,'+scale+'})?\s*$/';
    if(fields[i].value != "" && !(fields[i].value).match(decimalOnly)) {
        $(fields[i]).addClass('form-attr-error');
            result = false;
    }
    else {
        $(fields[i]).removeClass('form-attr-error');
    }

在上述RegEx中传递了“ scale”占位符值并比较value.match(RegEx)无效。

但是它像这样工作

value.match(/^\s*-?[1-9]\d*(\,\d{1,2})?\s*$/);

请帮助我如何将占位符的值替换为'2'。

1 个答案:

答案 0 :(得分:0)

StringJoiner formattedString= new StringJoiner("\n"); formattedString.add("XXX"); formattedString.add("YYY"); System.out.println(formattedString); 将自动将字符串参数转换为正则表达式;如果您想对此进行明确说明,则可以使用.match构造函数。但是请注意,斜杠不是regexp的一部分,而是regexp literal 的一部分。即这些会做同样的事情:

RegExp

这些都将执行与第一组不同的相同操作:

foo.match(/a/)
foo.match("a")
foo.match(new RegExp("a"))

前者将匹配一个字母序列foo.match(/\/a\/) foo.match("/a/") foo.match(new RegExp("/a/")) ;后者将匹配三个字母的序列a

tl; dr:消除/a/中的斜杠。

相关问题