我目前正在使用AngularJS指令,并且在模板中我试图检查Controller的实例变量是否是某种类型的字符串。
具体来说,这个字符串可以是任何字符串,只要它有一个8位数字即可 传递例子:" gdbfgihfb 88827367 dfgfdg"," 12345678"," .12345678" 数字必须是8个数字的实心字符串,中间没有任何内容。
我试过这个:
$ctrl.var == /[0-9]{8}/
但由于某种原因它不起作用。如何构建正则表达式才能执行此操作?
由于
答案 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;
答案 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' ]