diff --git a/src/api/index.js b/src/api/index.js index a682184..8e94511 100644 --- a/src/api/index.js +++ b/src/api/index.js @@ -19,8 +19,8 @@ const service = axios.create({ // baseURL: 'https://submission.tmrjournals.com/', //正式 记得切换 // baseURL: 'http://www.tougao.com/', //测试本地 记得切换 // baseURL: 'http://192.168.110.110/tougao/public/index.php/', - baseURL: '/api', //本地 - // baseURL: '/', //正式 + // baseURL: '/api', //本地 + baseURL: '/', //正式 }); diff --git a/src/common/js/commonJS.js b/src/common/js/commonJS.js index dbc0cb9..bcdb378 100644 --- a/src/common/js/commonJS.js +++ b/src/common/js/commonJS.js @@ -1285,38 +1285,30 @@ str = str.replace(regex, function (match, content, offset, fullString) { return html; }, - - getCleanTextForCount(html) { + getCleanTextForCount (html) { if (!html) return ""; - - // 创建临时容器解析 HTML const tempDiv = document.createElement('div'); tempDiv.innerHTML = html; - // A. 特殊处理 wmath:只拿它里面的公式文本,扔掉里面生成的 mjx-container 等标签 + // 1. 处理公式 (保留公式文本内容) const wmaths = tempDiv.querySelectorAll('wmath'); wmaths.forEach(wm => { - // textContent 会拿到最原始的公式字符,忽略内部所有标签 - const textNode = document.createTextNode(wm.textContent); + const textNode = document.createTextNode(" " + wm.textContent + " "); wm.parentNode.replaceChild(textNode, wm); }); - // B. 获取现在的 HTML 内容 - let result = tempDiv.innerHTML; + // 2. 移除所有引用标签 [1], [2] (防止用户靠狂刷引用来凑字数) + const refs = tempDiv.querySelectorAll('span.reference-link, a.ref'); // 根据你系统的 class 名调整 + refs.forEach(r => r.remove()); - // C. 去掉特定排版标签的“壳”(保留里面的文字) - // 包含 b, strong, br, em, i, sup, sub 等 - result = result.replace(/<(p|div|b|strong|br|em|i|sup|sub)[^>]*>/gi, ""); - result = result.replace(/<\/(p|div|b|strong|br|em|i|sup|sub)>/gi, ""); + // 3. 获取纯文本 (textContent 是浏览器原生方法,能处理所有标签及其属性) + let text = tempDiv.textContent || tempDiv.innerText || ""; - - - // E. 彻底“脱水”:去掉 HTML 实体、换行符、所有空格 - result = result.replace(/ /ig, ""); - result = result.replace(/[\r\n\t]/g, ""); - result = result.replace(/\s+/g, ""); - - return result; + // 4. 标准化空格:将 HTML 实体、换行、多个空格统一转为一个空格 + return text.replace(/ /ig, " ") + .replace(/[\r\n\t]+/g, " ") + .replace(/\s+/g, " ") + .trim(); }, diff --git a/src/components/page/components/reviewArticle/index.vue b/src/components/page/components/reviewArticle/index.vue index 0cbbf96..e153535 100644 --- a/src/components/page/components/reviewArticle/index.vue +++ b/src/components/page/components/reviewArticle/index.vue @@ -344,7 +344,7 @@ export default { }, async questionSubmit() { - + if (this.questionform.is_anonymous == '' && this.questionform.is_anonymous != '0') { this.$message.error('Please choose disclose your name or remain anonymous.'); @@ -390,8 +390,9 @@ export default { this.questionform.comment ]; Char_Cter = this.$commonJS.getCleanTextForCount(contents.join(' ')); + console.log("🚀 ~ questionSubmit ~ Char_Cter:", Char_Cter); + - if (new RegExp('[\\u4E00-\\u9FFF]+', 'g').test(Char_Cter)) { //中文