Javascript - 数据过滤和删除换行符

时间:2016-09-09 22:42:35

标签: javascript

在文本区域中输入isbn的列表,javascript打开每个输入的亚马逊搜索。

Isbn可以在10或13位数之间。 并非所有isbn搜索都以isbn开头,有时可能会有前面的信息,例如" isbn10:0195433831"所以你不能从头开始计算。

例如,这是典型的搜索:

0195433831好

0195433831差

0195433831优秀

问题

通常情况下,isbn以不同的格式输入,例如:

1)数字之间的间距

978 0 132 76682 1喜欢新

978 0 495 38500 4非常好

2)添加额外的评级编号,创建额外的不必要的 搜索。

9781118624616 9/10条件,突出显示最少

9780415462020 10/10条件,全新

所以我必须找到让Javascript过滤掉这些条件的方法。

代码在这里:



//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.com/gp/search/ref=sr_adv_b/?search-alias=stripbooks&field-isbn='
  window.open(base + isbn)
}
&#13;
<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>
&#13;
&#13;
&#13;

1 个答案:

答案 0 :(得分:0)

如果我没记错的话,ISBN应该是13个数字,那么你不能只删除空白并匹配13个组吗?

var str = "978 111 862 4616 9/10 condition with minimal highlighting\n\n9780415462020 10/10 condition, brand new",
    nums = str.replace(/\s/,"").match(/\d{13}/g);