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

Javascript - data filtering and removing line breaks

本文关键字:删除 换行符 过滤 数据 Javascript      更新时间:2023-09-26

在文本区域中输入isbn的列表,javascript为每个输入的isbn打开一个amazon搜索。

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

例如,这是一个典型的搜索:

0195433831 Good

0195433831贫穷

0195433831优秀

通常isbn的输入格式不同,例如:

1)数字之间有空格

978 0 132 76682 1 like new

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)
}
<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>

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);