preg_match到Javascript函数

时间:2011-07-24 20:59:44

标签: javascript node.js match

$value = 077283331111333;    
if( ! preg_match(/^[0-9]{1,20}+$/, $value))
{
    echo $value . " is not a number that has between 1,20 digits";
}

我正在尝试将此Php条件语句转换为Javascript语句。

这就是我所拥有的,目前无效。

var value = 077283331111333;
var regex = '/^[0-9]{1,20}+$/';
var match = regex.test(value);
if ( ! match) {
    console.log(value + 'is not a number that has between 1,20 digits');
}

这就是我得到的错误。

对象/ ^ [1,0] {1} + $ // ^ [0-9] {1,20} + $ /没有方法'测试'

有什么想法吗?另外,这在node.js环境中。

5 个答案:

答案 0 :(得分:3)

该方法未定义,因为它不是正则表达式而是字符串。

您需要删除引号才能在javascript中创建RegExp对象:

var regex = /^[1,0]{1}+$//^[0-9]{1,20}+$/;

无论如何我认为这不是一个有效的正则表达式(因为双斜线)你可能想检查那里的拼写错误......

检查1到20位数字的正则表达式只是:

var regex = /^\d{1,20}$/

答案 1 :(得分:1)

尝试从regex变量中删除引号。

答案 2 :(得分:1)

尝试从正则表达式中删除单引号

var value = 077283331111333;
var regex = /^[1,0]{1}+$//^[0-9]{1,20}+$/;
var match = regex.test(value);
if ( ! match) {
    console.log(value + 'is not a number that has between 1,20 digits');
}

答案 3 :(得分:1)

if ( /regex/.match( value ) ) {
  //do stuff
}

答案 4 :(得分:0)

这是一个奇怪的正则表达式...为什么不使用
    /^\d{1,20}$/.test(value)