gpt4 book ai didi

jquery - 使用 Jquery.serialize() 处理日语;

转载 作者:行者123 更新时间:2023-12-01 05:08:46 24 4
gpt4 key购买 nike

呼男孩。我猜这很奇怪!

从表单获取输入,我想确保在将其发送到 php 脚本以创建一些 xml 之前没有西文字符、标点符号或数字...

来自表单名称=“a”

$('form').submit(function() {

text = ($(this).serialize());

text = text.substr(2,text.length)

text = text.replace(/[^\u3040-\u30FF^\uFF00-\uFFEF^\u4E00-\u9FAF^\u3400-\u4DBF]/g,'');

---> 文本使用 .ajax 转到 php 脚本

但是,日语在到达正则表达式之前会被转换为 ASCII!

例如。あああ成为%E3%81%82%E3%81%82%E3%81%82

有什么建议吗?

最佳答案

我会在序列化之前交换它并更改输入,如下所示:

$('form').submit(function() {
$(this).find(':text, textarea').val(function(i, v) {
return v.replace(/[^\u3040-\u30FF^\uFF00-\uFFEF^\u4E00-\u9FAF^\u3400-\u4DBF]/g,'');
});
var text = ($(this).serialize());
//submit form....
});

这使用 .val()在序列化之前根据正则表达式获取并替换旧值(更重要的是, encodeURIComponent() 在那里被调用)。

<小时/>

另一种选择是在 .serialize() 中间自己执行正则表达式步骤如下:

$('form').submit(function() {
var arr = $(this).serialzeArray();
$.each(arr, function() {
this.value = this.value.replace(/[^\u3040-\u30FF^\uFF00-\uFFEF^\u4E00-\u9FAF^\u3400-\u4DBF]/g,'');
});
var postData = $.param(arr);
});

.serialize()实际上只是 $.param($(this).serializeArray()) 所以我们要做的就是在这里将其拆分,获取 value .serializeArray() 数组中的 {name:'name',value:'value'} 对象对在每个上创建并运行正则表达式。之后,我们将更改后的无西方字符数组传递给 $.param()序列化为字符串。

关于jquery - 使用 Jquery.serialize() 处理日语;,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3530503/

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