gpt4 book ai didi

Javascript : Throw error when Chinese characters are in the file name

转载 作者:行者123 更新时间:2023-11-30 20:24:52 29 4
gpt4 key购买 nike

您好,当我使用 Javascript 在文件名中看到中文字符时,我想抛出一个错误。我的代码抛出“预期的十六进制数字”错误。到目前为止,我有以下代码:

if(document.f1.Attachment.value.match(""/[\u4e00-\u9fff]|[\u3400-\u4dbf]|[\u{20000}-\u{2a6df}]|[\u{2a700}-\u{2b73f}]|[\u{2b740}-\u{2b81f}]|[\u{2b820}-\u{2ceaf}]|[\uf900-\ufaff]|[\u3300-\u33ff]|[\ufe30-\ufe4f]|[\uf900-\ufaff]|[\u{2f800}-\u{2fa1f}]""))
{
alert('Attachment cannot contain Chinese characters');
}

我正在阅读并理解这是因为\u 但我不明白如何解决这个问题。

最佳答案

首先,您应该从正则表达式文字的两端删除 ""。在 JS 中,您需要使用没有 "' 的普通 /.../ 来包装构造以使其正常工作,即解析为正则表达式。

接下来,您的模式包含符合 ECMAScript 6+ 标准的 \u{XXXXX} 符号,并且需要 u 修饰符才能在兼容的 JS 环境中工作。所以,在 ES6 中,这是一个有效的解决方案:

.match(/[\u4e00-\u9fff]|[\u3400-\u4dbf]|[\u{20000}-\u{2a6df}]|[\u{2a700}-\u{2b73f}]|[\u{2b740}-\u{2b81f}]|[\u{2b820}-\u{2ceaf}]|[\uf900-\ufaff]|[\u3300-\u33ff]|[\ufe30-\ufe4f]|[\uf900-\ufaff]|[\u{2f800}-\u{2fa1f}]/u)

要使其在 ES5 和旧版浏览器中工作,您需要 transpile the regex :

.match(/[\u4e00-\u9fff\u3400-\u4dbf\uf900-\ufaff\u3300-\u33ff\ufe30-\ufe4f\uf900-\ufaff]|(?:[\uD840-\uD868\uD86A-\uD872][\uDC00-\uDFFF]|\uD869[\uDC00-\uDEDF\uDF00-\uDFFF]|\uD873[\uDC00-\uDEAF]|\uD87E[\uDC00-\uDE1F])/)

JS ES5 演示:

if("中文".match(/[\u4e00-\u9fff\u3400-\u4dbf\uf900-\ufaff\u3300-\u33ff\ufe30-\ufe4f\uf900-\ufaff]|(?:[\uD840-\uD868\uD86A-\uD872][\uDC00-\uDFFF]|\uD869[\uDC00-\uDEDF\uDF00-\uDFFF]|\uD873[\uDC00-\uDEAF]|\uD87E[\uDC00-\uDE1F])/)) {
console.log("ES5: Chinese detected!");
}

JS ES6 演示:

if("中文".match(/[\u4e00-\u9fff]|[\u3400-\u4dbf]|[\u{20000}-\u{2a6df}]|[\u{2a700}-\u{2b73f}]|[\u{2b740}-\u{2b81f}]|[\u{2b820}-\u{2ceaf}]|[\uf900-\ufaff]|[\u3300-\u33ff]|[\ufe30-\ufe4f]|[\uf900-\ufaff]|[\u{2f800}-\u{2fa1f}]/u)) {
console.log("ES6: Chinese detected!");
}

最后一个在 IE 中给出Invalid range in character set错误,因为它不支持 ES6。

关于Javascript : Throw error when Chinese characters are in the file name,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51029696/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com