fix:书号去掉分隔符检测10位后再转换ISBN-13

This commit is contained in:
97694732@qq.com 2026-06-15 11:32:57 +08:00
parent 9e623e65ab
commit b7a6fbe73a

View File

@ -1241,10 +1241,11 @@ export default {
},
noIsbnUnifyIsbn(val) {
// 10ISBN-1013ISBNISBN
var result = this.convertIsbn10To13(val)
if (result && result !== val.replace(/[-\s]/g, '')) {
// -10ISBN
var clean = (val || '').replace(/[-\s]/g, '')
if (clean.length === 10 && /^\d{9}[\dXx]$/i.test(clean)) {
if (!this.noIsbnIsbn) {
this.noIsbnIsbn = result
this.noIsbnIsbn = this.convertIsbn10To13(clean)
}
}
}
@ -1260,16 +1261,11 @@ export default {
},
methods: {
// ISBN-10 ISBN-13
convertIsbn10To13(isbn) {
if (!isbn) return isbn
//
var clean = isbn.replace(/[-\s]/g, '')
// 10X
var match = clean.match(/^(\d{9})([\dXx])$/)
if (!match) return isbn
// ISBN-10 ISBN-13
convertIsbn10To13(clean) {
if (!clean || clean.length !== 10) return ''
// 9 + 978
var digits = '978' + match[1]
var digits = '978' + clean.slice(0, 9)
// ISBN-13
var sum = 0
for (var i = 0; i < 12; i++) {