Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript RegExp-测试方法问题_Javascript_Regex - Fatal编程技术网

Javascript RegExp-测试方法问题

Javascript RegExp-测试方法问题,javascript,regex,Javascript,Regex,我在实现Javascript RegExp-test方法时遇到了一个问题 var array = ['facebook', 'twitter', 'linkedin', 'xing', 'weibo'] array .forEach(function(cns) { var connector_name = '/.*' + cns + '$/'; console.log('conne name', connector_name); if (connector_name.t

我在实现Javascript RegExp-test方法时遇到了一个问题

var array = ['facebook', 'twitter', 'linkedin', 'xing', 'weibo']

array .forEach(function(cns) {
    var connector_name = '/.*' + cns + '$/';
    console.log('conne name', connector_name);
    if (connector_name.test('facebook')) {
        con = {
            account_type: cns
        };
        console.log('cns', cns);
    }

});
它给了我未捕获的异常***[TypeError:Object/*facebook$/没有方法“test']。 但当我给出下面的方法时,它是有效的

if (/.*facebook$/.test('facebook')) {
con = {
    account_type: 'facebook'
    };
}

请帮我解决这个问题。多谢各位

您可以创建如下正则表达式:

/regular expression/
new RegExp('regular expression')
'/.*' + cns + '$/';
…或者像这样:

/regular expression/
new RegExp('regular expression')
'/.*' + cns + '$/';
不能使用如下字符串创建一个:

/regular expression/
new RegExp('regular expression')
'/.*' + cns + '$/';
片段:

var数组=['facebook','twitter','linkedin','xing','weibo']
array.forEach(函数(cns){
var connector_name=newregexp('.'+cns+'$);
console.log('conne name',connector_name);
if(连接器名称测试('facebook')){
con={
帐户类型:cns
};
控制台日志('cns',cns);
}
});在您的代码中:

var连接器_name='/.'+cns+'$/'

连接器名称是一个字符串,而不是RegExp对象。而且
String
没有
test()
方法

但在这里:

if(/.*facebook$/.test('facebook')){

/.*facebook$/
是一个RegExp对象,它具有
test()
方法

您要使用的是RegExp构造函数:

var array = ['facebook', 'twitter', 'linkedin', 'xing', 'weibo']

array .forEach(function(cns) {
    var connector_name = new RegExp('.*' + cns + '$');
    console.log('conne name', connector_name);
    if (connector_name.test(facebook)) {
        con = {
            account_type: cns
        };
        console.log('cns', cns);
    }

});

非常感谢,这真的帮了我的忙。)非常感谢你的快速回复,这真的帮了我的忙。