gpt4 book ai didi

javascript - 在javascript中处理长字符串

转载 作者:行者123 更新时间:2023-11-27 22:44:41 25 4
gpt4 key购买 nike

我有一个页面,用户可以在其中编辑一些值(名称、描述等),除非添加长字符串作为描述,否则该页面工作正常。

当用户更改输入字段的值时,将调用 JavaScript 函数来检查是否有任何值与初始值不同(当网站首次使用 PHP 加载时,初始值将存储为变量)。它看起来像这样:

<script>
//checks if a field has changed value, if yes, change class
function check(div, text){
if(div.val()===text){
div.parent().removeClass("has-warning");
return 0;
} else{
div.parent().addClass("has-warning");
return 1;
}
}
</script>
*here goes the html stuff*
<script>
//whenever the form content changes
$('#horse1').bind('input', function() {
//the form div
var horseDiv = $('#horse1');
//count all the fields with changed value
var error = check(horseDiv.find($('#name')), 'Rinaldo')
+check(horseDiv.find($('#race')),'-')
+check(horseDiv.find($('#date')),'1988-01-01')
+check(horseDiv.find($('#use')), 'Showpferd')
+check(horseDiv.find($('#shortDesc')), 'short Description')
+check(horseDiv.find($('#description')),'This can be a long text over multiple lines');

//if there is at least one field with a
//changed value, display an error message
var errorDiv = horseDiv.find($('#notSaved'));
if(error==0){
errorDiv.hide();
} else{
errorDiv.show();
}
});
</script>

因此,首先,如果有人知道如何使这种行为更加优雅,我愿意接受建议。

但我遇到的问题是,如果文本(描述)超过一行,该脚本将完全停止工作。我不确定为什么或如何解决这个问题,所以任何帮助将不胜感激。

***更新:比较 JavaScript 中的多行文本

如果有人遇到同样的问题,这里是对我有用的解决方案:

var textNew = text.replace(/%0D/g, '');
var divNew = encodeURIComponent(div.val()).replace(/!/g, '%21')
.replace(/'/g, '%27')
.replace(/\(/g, '%28')
.replace(/\)/g, '%29')
.replace(/\*/g, '%2A');

变量“text”是来自 php 脚本的 rawlurlencode() 字符串,div.val() 是从文本区域读取的明文。使用上面的代码,textNew===divNew 返回 true,即使它们包含逗号、变音符号、换行符和其他令人讨厌的东西

最佳答案

尝试将描述字符串传递到 json_encode正确地逃避它。

关于javascript - 在javascript中处理长字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38490267/

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