繁体   English   中英

RegExp错误:匹配不是函数

[英]RegExp Error: Match is not a function

我正在尝试将正则表达式模式与我的数字输入进行比较,看看是否匹配:

var number = '490351111313131';

var switchPrefix = new RegExp(/(4903|4905|4911|4936|564182|633110|6333|6759)/);

  var stringToArray = number.split('').map(Number);
  var x = parseInt(stringToArray.slice(0, 6).join(''), 10); => outputs 490351


  console.log(typeof(x), x); => outputs number

  if(x.match(switchPrefix)){
    console.log(true);
  }

但是由于某种原因,它总是返回: “匹配不是函数”

任何想法如何解决这个问题? 还是为什么这样工作?

谢谢!

但是由于某种原因,它总是返回:“匹配不是函数”

Number类型变量没有match方法。

matchString类的一种方法,因此将代码更改为

 if(String(x).match(switchPrefix)){
    console.log(true);
  }

您可以使用RegExp#test

test()方法执行搜索以查找正则表达式与指定字符串之间的匹配项。 返回truefalse

因为它返回一个布尔值,这在这里是需要的。

 function test(s) { return /^(4903|4905|4911|4936|564182|633110|6333|6759)\\d*$/.test(s); } console.log(test('490351111313131')); console.log(test('1490351111313131')); 

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM