javascript - problème de remplacement régulier de js
高洛峰
高洛峰 2017-07-05 10:55:03
0
2
965
<!DOCTYPE html>
<html>
<head>
    <title>内容</title>
</head>
<body>
中文
<p>内容<i>内容</i></p>
</body>
</html>

Remplacez le contenu de la balise par

<!DOCTYPE html>
<html>
<head>
    <title>{{#内容#}}</title>
</head>
<body>
{{#中文#}}
<p>{{#内容#}}<i>{{#内容#}}</i></p>
</body>
</html>

Comment écrire la solution régulière ?

高洛峰
高洛峰

拥有18年软件开发和IT教学经验。曾任多家上市公司技术总监、架构师、项目经理、高级软件工程师等职务。 网络人气名人讲师,...

répondre à tous(2)
Ty80

Premièrement, si vous avez appris les principes de la compilation, vous saurez que les expressions régulières ne sont pas capables de traiter des structures de données imbriquées. En d'autres termes, si vous souhaitez satisfaire à l'exigence de [sélectionner la première balise i du p imbriqué dans le corps] via une expression régulière, cela n'est en principe pas réalisable.

Deuxièmement, vous avez affaire à un texte DOM structuré, vous pouvez donc utiliser la méthode parseHTML de jQuery pour y parvenir. L'objet obtenu après avoir passé l'analyse jQuery peut utiliser $ pour sélectionner davantage des nœuds tels que p ou i. Cela peut résoudre votre problème de remplacement de texte de manière simple et efficace.

Si vous êtes sur le serveur Node, remplacez simplement jQuery par cheerio.

Ty80

Si vous souhaitez uniquement remplacer dans le texte de test actuel que vous avez donné, car la situation est relativement simple, il vous suffit d'écrire une correspondance régulière comme ([u4e00-u9fa5]+) et de la remplacer par {{#$1#}}

Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal