Javascript正则表达式中包含数字的字符串

时间:2016-06-22 01:39:15

标签: javascript angularjs regex

我目前正在使用AngularJS指令,并且在模板中我试图检查Controller的实例变量是否是某种类型的字符串。

具体来说,这个字符串可以是任何字符串,只要它有一个8位数字即可 传递例子:" gdbfgihfb 88827367 dfgfdg"," 12345678"," .12345678" 数字必须是8个数字的实心字符串,中间没有任何内容。

我试过这个:

$ctrl.var == /[0-9]{8}/ 

但由于某种原因它不起作用。如何构建正则表达式才能执行此操作?

由于

2 个答案:

答案 0 :(得分:2)

你的正则表达式很好,但比较错误。你想要

/\d{8}/.test($ctrl.var)

请参阅https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/RegExp/test



let tests = ["gdbfgihfb 88827367 dfgfdg", "12345678", ".12345678", "nope, no numbers here"],
    rx = /\d{8}/;

tests.map(str => document.write(`<pre>"${str}": ${rx.test(str)}</pre>`)) 
&#13;
&#13;
&#13;

答案 1 :(得分:1)

代码:

var first = "gdbfgihfb 88827367 dfgfdg";
var second = "12345678";
var third = ".12345678";

var reg = new RegExp('[0-9]{8}');

console.log(first.match(reg));
console.log(second.match(reg));
console.log(third.match(reg));

输出:

[ '88827367', index: 10, input: 'gdbfgihfb 88827367 dfgfdg' ]
[ '12345678', index: 0, input: '12345678' ]
[ '12345678', index: 1, input: '.12345678' ]