Javascript过滤变量
Javascript filtering variables
此代码使用ISBN来搜索Amazon查询,例如"128584632X"。它不与间隔isbn的工作,所以我需要有他们过滤与空格删除,如"12 858 463 2X"。我需要"var items"来过滤空格。
JSFiddle here: https://jsfiddle.net/jfjd8a3h/
//the input box.
var input = document.getElementById('numbers');
//adding an event listener for change on the input box
input.addEventListener('input', handler, false);
//function that runs when the change event is emitted
function handler () {
var items = input.value.replace(/'r?'n/g, ' ').split(' ');
length = items.length;
console.log('your collection', items);
for (var i = 0; i < length; i++) {
if ( items[i] && !isNaN(items[i]) ) {
console.log('opening page for isbn ', items[i])
openPage(items[i]);
}
}
}
//opens the tab for one isbn number
function openPage (isbn) {
var base = 'https://www.amazon.ca/s/ref=nb_sb_noss?url=search-alias%3Daps&field-keywords='
window.open(base + isbn)
}
<h1>Amazon Bulk ISBN Search</h1>
<p>... note, after paste you may need to click outside the text area or tab out to fire the change event.</p>
<textarea id=numbers placeholder="paste isbn numbers as csv here">
</textarea>
我认为你想要的是:
var items = input.value.replace(/'r?'n/g, '!').replace(/'s/g, '').split('!')
我不得不首先使用!
作为换行符的替换,因为看起来's
也剥离了换行符。
好吧,至少这应该让你开始。
另一种方法可能是首先对换行符使用split,然后对集合中的每个项运行replace。我想这样更容易读懂。
编辑:这个条件阻止打开页面的代码运行,因为ISBN以X结尾,所以它不是一个数字:&& !isNaN(items[i])
相关文章:
- 将函数的上下文应用于javascript变量
- 无法导出函数expressjs/requestjs中的变量
- 在解析时使用变量过滤数据
- 在Angular.js中通过检查作用域变量进行过滤
- 如何在AngularJS中按变量过滤列表
- 调整 javascript 正则表达式以过滤来自 url 的变量
- 如何在 JavaScript 中通过过滤空白值来比较变量
- jQuery按两个变量过滤,其中一个可能未定义
- 如何在不同的变量中过滤我的json对象
- Javascript:过滤已附加到全局作用域的变量
- 角度->ng个重复过滤的数组变量
- 在Angular中过滤单独的变量
- 如何在过滤后改变数组变量——Angular Ui分页
- 通过id字段过滤数组列表到一个新变量
- Javascript过滤变量
- 过滤“orderBy"不能将变量作为数组使用
- 如何在dc.js中将过滤表达式放入变量中
- 在不产生副作用的情况下过滤和更改变量的值
- 过滤JavaScript变量并从H3获取内容
- 如何在单个手表变量中组合多个过滤值