jQuery 和 iOS 设备
<p><p>我有 html 格式的纯文本。我将类添加到某些标签以使用 jQuery 即时格式化它们。</p>
<p>在 PC 和 Android 上一切正常,但在 iOS 上没有任何反应。可能是什么错误?</p>
<p>示例代码如下</p>
<pre><code><script>
var $=jQuery.noConflict();
jQuery( document ).ready(function() {
var dialog = $( "p:has(strong)" ).addClass( "wi-dialog" );
var chapter = $( "p:has(ins)" ).addClass( "wi-chapter" );
dialog.html(function(i, v) { return v.replace(/(?<=\n)\s*(\(.*?\)).*?/g, '<span class="wi-remark">$&</span>') });
var more = $(".wi-remark:contains(MORE)").addClass( "wi-more").removeClass( "wi-remark");
var p = $('p:not(.wi-dialog,.wi-chapter)');
p.filter(function() {
return ((/^+$/).test($(this).html()));
}).addClass("wi-number");
p.filter(function() {
return ((/^(THE END)+$/).test($(this).html())); }).addClass( "wi-end" );
});
});
</script>
</code></pre>
<p>问题来了</p>
<pre><code>dialog.html(function(i, v) { return v.replace(/(?<=\n)\s*(\(.*?\)).*?/g, '<span class="wi-remark">$&</span>') });
</code></pre>
<p>文本示例</p>
<pre><code><p><strong>HENRY</strong>
Gather more wood.</p>
<p>Fitzgerald waits for Henry to turn, then gives his back an exaggerated salute.</p>
<p><strong>FITZGERALD</strong><br>
(under his breath)<br>
Shame my Pap was a broken down drunk. Else he could’ve bought me a Captain’s job too.</p>
<p>Boone snickers. Fitzgerald stomps his boot onto a branch, easily snaps it into two easy-to-carry pieces.</p>
<p><strong>FITZGERALD</strong> (CONT’D)<br>
We got a plan for these fires, Captain, or are we roastin’ berries all the way up to Fort Union?</p>
<p><strong>HENRY</strong><br>
Glass and the others will be back with some game, Fitzgerald. Just make sure you have the fires ready.</p>
<p><strong>FITZGERALD</strong><br>
My supper’s in the hands of a injun- lover, a peach-fuzz kid and a half- wit dummy. Hell, my belly feels full already.</p>
</code></pre></p>
<br><hr><h1><strong>Best Answer-推荐答案</ strong></h1><br>
<p><p>此解决方案应该适合您。问题是负面的后视,这在某些 iOS 版本上不起作用。现在它正在使用非捕获组。</p>
<p></p><div class="snippet"data-lang="js"data-hide="false"data-console="true"data-babel="false">
<div class="snippet-code">
<pre class="snippet-code-js lang-js prettyprint-override"><code>$(document).ready(function(){
var dialog = $( "p:has(strong)" ).addClass( "wi-dialog" )
for (var i = 0; i < dialog.length; i++) {
e = dialog.eq(i)
var e_html = e.html()
var pattern = /(?:\n)\s*(\(.*?\)).*?/gm
var match = pattern.exec(e_html)
while (match != null) {
e_html = e_html.replace(match, '<span class="wi-remark">$&</span>')
match = pattern.exec(e_html)
}
e.html(e_html)
}
})</code></pre>
<pre class="snippet-code-html lang-html prettyprint-override"><code><!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<script src="https://code.jquery.com/jquery-3.1.0.min.js"></script>
</head>
<body>
<p>
<strong>FITZGERALD</strong> (CONT’D)<br>
Shut up, boy, you don’t get no say in this.<br>
(back to Henry)<br>
And in case you hadn’t noticed, Captain, we’re seventeen men short of what we were.
(off the wounded trapper)<br>
Eighteen before long.
</p>
<p>
<strong>FITZGERALD</strong><br>
(under his breath)<br>
Shame my Pap was a broken down drunk. Else he could’ve bought me a Captain’s job too.
</p>
</body>
</html></code></pre>
<p style="font-size: 20px;">关于jQuery 和 iOS 设备,我们在Stack Overflow上找到一个类似的问题:
<a href="https://stackoverflow.com/questions/57728760/" rel="noreferrer noopener nofollow" style="color: red;">
https://stackoverflow.com/questions/57728760/
</a>
</p>
页:
[1]