我一直在尝试使用正则表达式来评估字符串,但是我注意到了一种奇怪的行为,当我用正则表达式多次测试时.测试方法在true和false之间交替.检查此编码器 - > http://codepen.io/gpincheiraa/pen/BoXrEz?editors=001
var emailRegex = /^([a-zA-Z0-9_\.\-]){0,100}\@(([a-zA-Z0-9\-]){0,100}\.)+([a-zA-Z0-9]{2,4})+$/,
phoneChileanRegex = /^\+56\S*\s*9\S*\s*\d{8}(?!\@\w+)/g,
number = "+56982249953";
if(!number.match(phoneChileanRegex) && !number.match(emailRegex) ) {
console.log("it's not a phone number or email address");
}
//Weird Behaviour
console.log(phoneChileanRegex.test(number)); --> true
console.log(phoneChileanRegex.test(number)); --> false
Run Code Online (Sandbox Code Playgroud) 我想,如果我可以举例来说,如果我有多少拿到3的数块22345678我想['22','345','678'].使用以下正则表达式
/(\d{1,3})(?=(\d{3})+(?!\d))/g
Run Code Online (Sandbox Code Playgroud)
我明白了 ['22','345']
任何人都可以帮助我提高我的正则表达式?
这里有一个例子 - > https://regex101.com/r/cF6rN4/1 和这篇文章中的一个片段
console.log('22345678'.match(/(\d{1,3})(?=(\d{3})+(?!\d))/g));Run Code Online (Sandbox Code Playgroud)
我编写了一个ruby代码,用于对数字进行舍入,如下所示:
def round_down(number)
number.to_s.split(/\./)[0].to_i
end
round_down(1.9)
Run Code Online (Sandbox Code Playgroud)
有人知道更实用的方法吗?
我一直在尝试创建一个解决 3 个承诺的功能,我这个承诺中的任何一个都失败了,我想重试。我的想法是:如果第二个承诺失败,无论如何都应该解决第一个和第三个承诺,可以通知订阅者。
那是我的代码:
const endpointsRequest = [
axios.get("https://restcountries.eu/rest/v2/name/aruba?fullText=true"),
axios.get("http://localhost:8080"),
axios.get("https://restcountries.eu/rest/v2/name/argentina?fullText=true")
];
return Observable
.forkJoin(endpointsRequest)
.switchMap( promise => Observable.defer(() => promise) )
.retry(3)
.subscribe(
(x) => {
console.log("=======================================");
console.log("Result", x.data.length? x.data[0] : x.data);
console.log("=======================================");
},
(err) => {
console.log("=======================================");
console.log(`Error: ${err}`)
console.log("=======================================");
},
() => {
console.log("=======================================");
console.log("Completed");
console.log("=======================================");
}
);
Run Code Online (Sandbox Code Playgroud)
有可能实现这一目标吗?
使用此 promises 数组时的响应示例:
承诺数组
const endpointsRequest = [
axios.get("https://restcountries.eu/rest/v2/name/aruba?fullText=true"),
axios.get("https://restcountries.eu/rest/v2/name/argentina?fullText=true")
];
Run Code Online (Sandbox Code Playgroud)
回复
=======================================
Result { name: 'Aruba',
topLevelDomain: [ '.aw' ],
alpha2Code: 'AW',
alpha3Code: 'ABW',
callingCodes: [ '297' …Run Code Online (Sandbox Code Playgroud) 我找到了这个例子,我很惊讶发电机的最终值来自发电机的方式.这是代码:
function* foo() {
yield 'a';
yield 'b';
yield 'c';
}
const [...values] = foo();
Run Code Online (Sandbox Code Playgroud)
根据我对生成器的理解,我认为对生成器执行进行解构等同于:
const array = [];
for(const val of foo()) {
array.push(val)
}
Run Code Online (Sandbox Code Playgroud)
所以,我的问题是:这是获取生成器函数值的有效方法以及实现此目的的其他方法吗?