我认为这是一个 CSS 问题。显然 webkit 有一些不同的文本剪切问题,只需添加即可解决
在任何文本行的末尾。直接在一个单词被剪辑之后。
您可以尝试修改您的 html 文件之一以添加
字母被剪掉后看看是否修复了?如果是这样,我们可以继续编写自动插入的 JavaScript
在正确的地方!
编辑:如果它确实有效,请使用以下 JavaScript 代码:
var bodyText = "هذا هو بلدي النص الأساسي.";
var newBodyText = bodyText.replace(" "," ");
再想一想,由于您是 RTL 字符串,您可能需要使用它,但不确定如何string.replace
函数处理 RTL
var bodyText = "هذا هو بلدي النص الأساسي.";
var newBodyText = bodyText.replace(" "," ");
编辑编辑:
要通过 RegEx 来做到这一点(忽略 HTML script 标签,在 Objective-C 中我相信你会使用这段代码(我对 RegEx 不太了解,所以如果它不起作用,我会用以下内容打开一个新问题)有关如何执行此操作的 RegEx 标签,他们可能会在几分钟内给您答案!))。
NSString *string = originalHTMLString;
NSError *error = nil;
NSRegularExpression *regex = [NSRegularExpression regularExpressionWithPattern:@"(?i)(<script(?:[^>\"']|\"[^\"]*\"]|'[^']*')*>)\s+</script\\s*>|<style(?:[^>\"']|\"[^\"]*\"]|'[^']*')*>)\s+</style\\s*>|<textarea(?:[^>\"']|\"[^\"]*\"]|'[^']*')*>)\s+</textarea\\s*>|</?[a-z](?:[^>\"']|\"[^\"]*\"]|'[^']*')*>|\\S+)|\\s+" options:NSRegularExpressionCaseInsensitive error:&error];
NSString *modifiedString = [regex stringByReplacingMatchesInString:string options:0 range:NSMakeRange(0, [string length]) withTemplate:@" "];
finalHTMLString = modifiedString;
...再次,再三考虑,因为它是一种 RTL 语言,所以您实际上可以使用代码的这种变体,将 nbsp 放在空格之后(从左到右):
NSString *string = originalHTMLString;
NSError *error = nil;
NSRegularExpression *regex = [NSRegularExpression regularExpressionWithPattern:@"(?i)(<script(?:[^>\"']|\"[^\"]*\"]|'[^']*')*>)\s+</script\\s*>|<style(?:[^>\"']|\"[^\"]*\"]|'[^']*')*>)\s+</style\\s*>|<textarea(?:[^>\"']|\"[^\"]*\"]|'[^']*')*>)\s+</textarea\\s*>|</?[a-z](?:[^>\"']|\"[^\"]*\"]|'[^']*')*>|\\S+)|\\s+" options:NSRegularExpressionCaseInsensitive error:&error];
NSString *modifiedString = [regex stringByReplacingMatchesInString:string options:0 range:NSMakeRange(0, [string length]) withTemplate:@" "];
finalHTMLString = modifiedString;