<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                ??碼云GVP開源項目 12k star Uniapp+ElementUI 功能強大 支持多語言、二開方便! 廣告
                # F.19\. isn `isn`模塊為下列的國際產品編號標準提供數據類型:EAN13, UPC, ISBN (books), ISMN (music), and ISSN (serials)。編號在輸入時是經過確認的,根據一個前綴的硬編碼列表; 這個前綴列表也用于在輸出時連接編號。因為不時地分配新的前綴,所以前綴列表可能過期。 希望這個模塊的將來版本可以根據需要,從一個或多個可以通過用戶容易更新的表中獲得前綴列表; 不過,目前該列表只能通過修改源代碼和重新編譯來更新。或者,在這個模塊的將來版本中, 前綴確認或連接支持可能會被刪除。 ## F.19.1\. 數據類型 [Table F-10](#calibre_link-435)顯示了`isn`模塊支持的數據類型。 **Table F-10\. `isn` 數據類型** | 數據類型 | 描述 | | --- | --- | | `EAN13` | European Article Numbers(歐洲文章號), 總是以 EAN13 顯示格式顯示 | | `ISBN13` | International Standard Book Numbers(國際標準書號),以新EAN13顯示格式顯示 | | `ISMN13` | International Standard Music Numbers(國際標準音樂號),以新EAN13顯示格式顯示 | | `ISSN13` | International Standard Serial Numbers(國際標準序列號),以新EAN13顯示格式顯示 | | `ISBN` | International Standard Book Numbers(國際標準書號),以舊的短顯示格式顯示 | | `ISMN` | International Standard Music Numbers(國際標準音樂號),以舊的短顯示格式顯示 | | `ISSN` | International Standard Serial Numbers(國際標準序列號),以舊的短顯示格式顯示 | | `UPC` | Universal Product Codes(通用產品條碼) | 一些備注: 1. ISBN13, ISMN13, ISSN13編號都是EAN13編號。 2. EAN13編號并不總是ISBN13, ISMN13 或 ISSN13(有些是)。 3. 一些ISBN13編號可以以ISBN顯示。 4. 一些ISMN13編號可以以ISMN顯示。 5. 一些ISSN13編號可以以ISSN顯示。 6. UPC編號是EAN13編號的一個子集(它們基本上是沒有第一個`0`數字的EAN13)。 7. 所有UPC, ISBN, ISMN 和 ISSN編號都可以用EAN13編號表示。 在內部,所有這些類型使用相同的表示(一個64位整數),并且所有類型相互之間可以轉換。 提供多種類型控制顯示格式和允許對應該表示一個編號的特定類型的輸入更嚴格的有效性檢查。 `ISBN`, `ISMN`, 和 `ISSN`類型將在可能時顯示編號的短版本(ISxN 10), 不適合端版本的編號顯示ISxN 13格式。`EAN13`, `ISBN13`, `ISMN13` 和`ISSN13`類型總是顯示ISxN的長版本(EAN13)。 ## F.19.2\. 轉換 `isn`模塊支持下列的類型轉換對: * ISBN13 &lt;=&gt; EAN13 * ISMN13 &lt;=&gt; EAN13 * ISSN13 &lt;=&gt; EAN13 * ISBN &lt;=&gt; EAN13 * ISMN &lt;=&gt; EAN13 * ISSN &lt;=&gt; EAN13 * UPC &lt;=&gt; EAN13 * ISBN &lt;=&gt; ISBN13 * ISMN &lt;=&gt; ISMN13 * ISSN &lt;=&gt; ISSN13 當從`EAN13`轉換到其他類型時,有一個運行時檢查,值在其他類型的領域內, 如果不在則拋出一個錯誤。其他轉換只是簡單的確認,總是會成功。 ## F.19.3\. 函數和操作符 `isn`模塊提供標準的比較運算符,加上B-tree和哈希索引支持所有的這些數據類型。 另外,有幾個專門的函數;顯示在[Table F-11](#calibre_link-436)中。在這個表中, `isn`意為模塊的數據類型之一。 **Table F-11\. `isn` 函數** | 函數 | 返回 | 描述 | | --- | --- | --- | | `isn_weak(boolean)` | `boolean` | 設置weak輸入模式 (返回新的設置) | | `isn_weak()` | `boolean` | 獲取當前 weak 模式的狀態 | | `make_valid(isn)` | `isn` | 確認一個無效數字(清除無效標識) | | `is_valid(isn)` | `boolean` | 檢查無效標識的存在 | _Weak_模式用于可以插入無效數據到表中。無效的意思是檢查位為wrong, 而不是說它們是丟失的數字。 為什么想要使用weak模式?很好,可能你有一個巨大的ISBN編號的采集,其中的一些因為怪異的原因有wrong檢查位 (可能編號是從打印列表掃描進來的,而OCR(光學字符識別)獲取編號錯誤,也或許編號是手動捕獲的……誰知道呢)。 無論如何,關鍵是你可能想要清理這個爛攤子,但是你又想要在你的數據庫中有所有的編號, 或許使用一個額外的工具在數據庫中定位無效編號,這樣你就可以驗證信息并使其更容易的生效; 例如你想要在表中選擇所有無效編號。 當你使用weak模式插入無效編號到一個表中時,該編號將帶有修正的檢查位插入, 但是在顯示時將在后面帶有一個嘆號標記(`!`),例如`0-11-000322-5!`。 這些無效標記可以用`is_valid`函數檢查然后用`make_valid`函數清除。 即使不在weak模式下,你也可以強制插入無效編號,通過在編號后面附加`!`字符。 另一個特別特征是在輸入期間,可以在檢查位上寫`?`,并且正確的檢查位將自動插入。 ## F.19.4\. 例子 ``` --直接使用類型: SELECT isbn('978-0-393-04002-9'); SELECT isbn13('0901690546'); SELECT issn('1436-4522'); --轉換類型: -- 請注意,你只能從ean13轉換到另外一個類型當 -- 數字在目標類型的領域中將會是有效的; -- 因此下列將不會工作: select isbn(ean13('0220356483481')); -- 但是他們將: SELECT upc(ean13('0220356483481')); SELECT ean13(upc('220356483481')); --創建一個單個字段的表以保持ISBN編碼: CREATE TABLE test (id isbn); INSERT INTO test VALUES('9780393040029'); --自動計算校驗數位(觀察'?'): INSERT INTO test VALUES('220500896?'); INSERT INTO test VALUES('978055215372?'); SELECT issn('3251231?'); SELECT ismn('979047213542?'); --使用weak模式: SELECT isn_weak(true); INSERT INTO test VALUES('978-0-11-000533-4'); INSERT INTO test VALUES('9780141219307'); INSERT INTO test VALUES('2-205-00876-X'); SELECT isn_weak(false); SELECT id FROM test WHERE NOT is_valid(id); UPDATE test SET id = make_valid(id) WHERE id = '2-205-00876-X!'; SELECT * FROM test; SELECT isbn13(id) FROM test; ``` ## F.19.5\. 參考文獻 實施這個模塊的信息從幾個站點收集而來,包括: * [http://www.isbn-international.org/](http://www.isbn-international.org/) * [http://www.issn.org/](http://www.issn.org/) * [http://www.ismn-international.org/](http://www.ismn-international.org/) * [http://www.wikipedia.org/](http://www.wikipedia.org/) 用于連字符的前綴也從下列編譯而來: * [http://www.gs1.org/productssolutions/idkeys/support/prefix_list.html](http://www.gs1.org/productssolutions/idkeys/support/prefix_list.html) * [http://www.isbn-international.org/en/identifiers.html](http://www.isbn-international.org/en/identifiers.html) * [http://www.ismn-international.org/ranges.html](http://www.ismn-international.org/ranges.html) 在算法創建期間要小心,并且他們對在官方 ISBN, ISMN, ISSN 用戶手冊中建議的算法進行仔細的驗證。 ## F.19.6\. 作者 Germán Méndez Bravo (Kronuz), 2004 - 2006 這個模塊的靈感來自Garrett A. Wollman的`isbn_issn`代碼。
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看