看到PHP的一道面试题, 做了上, 不知道还有没好点方法
看到PHP的一道面试题, 做了下, 不知道还有没好点方法
题目如下,
类似这样的aaasssddd字符串,写个函数CutStr($str,$max)实现截取:
1)如果$max大于$str的长度则返回$str
2)和不包含在长度计算范围。
例:
如果CutStr("aaasssddd",6) 则返回aaasss.
如果CutStr("aaasssddd",4) 则返回aaas,不包含标签
我的第一反应就是正则, 然后就...
var str = "aaa<em>sss</em>ddd";
function cutStr(str, max) {
// 首先把<em>和</em>先给剔除, 然后记录他们的位置
var reg = new RegExp("(.*?)<em>(.*?)</em>(.*?)");
var emSub = str.indexOf("<em>");
var em2Sub = str.indexOf("</em>");
var newstr = str.replace(reg, "$1$2$3");
// 如果不是数字或是负数, 或者大于字符长度, 直接返回原字符
if (!/^\d+$/.test(max) || max >= newstr.length) return str;
newstr = newstr.substring(0, max);
if (max <= emSub) { //小于三
return newstr;
} else if (max <= em2Sub - 4 && max > emSub) { // 大于三, 小于六时(注: -4 是为了减去第一个<em>占去的位置)
var tempReg = new RegExp("(\\w{" + emSub + "})(\\w*?)");
return newstr.replace(tempReg, "$1<em>$2");
} else { // 大于六
var tempReg = new RegExp("(\\w{" + emSub + "})(\\w{" + (em2Sub - emSub - 4) + "}?)(\\w*?)");
return newstr.replace(tempReg, "$1<em>$2</em>$3");
}
}
alert(cutStr(str, 7));?
觉得这个方法好笨, 有什么别的好点的方法吗?
想到了,, 原来这个这么简单,, 我把它想复杂了...
var str = "aaa<em>sss</em>ddd";
function cutStr(str, max) {
var emSub = str.indexOf("<em>");
var em2Sub = str.indexOf("</em>");
// 如果不是数字或是负数, 或者大于字符长度, 直接返回原字符
if (!/^\d+$/.test(max) || max >= str.length - 9) return str;
else if(max > em2Sub-4) return str.substring(0, max + 9);
else if(max > emSub) return str.substring(0, max + 4);
else return str.substring(0, max);
}
alert(cutStr(str, 7)); ?

Outils d'IA chauds

Undresser.AI Undress
Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover
Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool
Images de déshabillage gratuites

Clothoff.io
Dissolvant de vêtements AI

AI Hentai Generator
Générez AI Hentai gratuitement.

Article chaud

Outils chauds

Bloc-notes++7.3.1
Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise
Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1
Puissant environnement de développement intégré PHP

Dreamweaver CS6
Outils de développement Web visuel

SublimeText3 version Mac
Logiciel d'édition de code au niveau de Dieu (SublimeText3)

De nombreux utilisateurs choisiront la marque Huawei lors du choix des montres intelligentes. Parmi eux, les Huawei GT3pro et GT4 sont des choix très populaires. De nombreux utilisateurs sont curieux de connaître la différence entre Huawei GT3pro et GT4. Quelles sont les différences entre Huawei GT3pro et GT4 ? 1. Apparence GT4 : 46 mm et 41 mm, le matériau est un miroir en verre + un corps en acier inoxydable + une coque arrière en fibre haute résolution. GT3pro : 46,6 mm et 42,9 mm, le matériau est du verre saphir + corps en titane/corps en céramique + coque arrière en céramique 2. GT4 sain : en utilisant le dernier algorithme Huawei Truseen5.5+, les résultats seront plus précis. GT3pro : ajout d'un électrocardiogramme ECG, d'un vaisseau sanguin et de la sécurité

iPhone 15 Pro contre iPhone 14 Pro : comparaison des spécifications Voici une comparaison des spécifications entre l'iPhone 15 Pro Max et l'iPhone 14 Pro Max : iPhone 15 Pro Max iPhone 14 Pro Max Taille de l'écran 6,7 pouces 6,7 pouces Technologie d'affichage Super Retina 2 000 nits Dimensions 6,29x3 0,02x0,32 pouces 6,33x3,06x0,31 pouces Poids 221 grammes 240 grammes

Pourquoi l'outil Snipping ne fonctionne pas sous Windows 11 Comprendre la cause première du problème peut aider à trouver la bonne solution. Voici les principales raisons pour lesquelles l'outil de capture peut ne pas fonctionner correctement : L'assistant de mise au point est activé : cela empêche l'ouverture de l'outil de capture. Application corrompue : si l'outil de capture plante au lancement, il est peut-être corrompu. Pilotes graphiques obsolètes : des pilotes incompatibles peuvent interférer avec l'outil de capture. Interférence provenant d'autres applications : d'autres applications en cours d'exécution peuvent entrer en conflit avec l'outil de capture. Le certificat a expiré : une erreur lors du processus de mise à niveau peut provoquer ce problème. Solution simple. Celles-ci conviennent à la plupart des utilisateurs et ne nécessitent aucune connaissance technique particulière. 1. Mettez à jour les applications Windows et Microsoft Store

La dernière série d'iPhone Pro est équipée d'un puissant capteur de 48 MP qui garantit des photos très détaillées et d'une clarté cristalline pour capturer chaque instant précieux. Cependant, un inconvénient potentiel est la taille des images en pleine résolution, notamment celles au format ProRAW. Bien que l'espace de stockage maximum offert par l'iPhone soit de 512 Go, la capture de nombreuses images ProRAW (environ 75 MP chacune) et de vidéos (440 Mo par minute, 60 FPS) peut rapidement consommer votre espace de stockage. Cela peut poser des problèmes si vous envisagez d'utiliser votre iPhone comme appareil photo principal pour de grands projets ou des voyages. Mais ne serait-il pas formidable si vous pouviez prendre ces photos haute résolution de 48 MP sans vous soucier des limitations de stockage ? c'est rapide

Bien qu'Apple lancera le temps de lecture vidéo de l'iPhone pour informer les utilisateurs que la batterie de l'iPhone est presque disponible. Mais les utilisateurs normaux n’utilisent pas leur iPhone pour visionner des vidéos à longueur de journée. 7 iPhones testés pour leur endurance dans les applications quotidiennes. Comprend 7 modèles dont iPhone15ProMax, iPhone15Pro, iPhone15Plus, iPhone15, iPhone14ProMax, iPhone14 et iPhone13ProMax. En parcourant certaines applications quotidiennes, telles que Spotify, Zoom, Tiktok, Headspace, pensez aux applications, aux jeux, etc., nous pouvons voir la durée de vie de la batterie des différents iPhones. ce

Le flux de java8 prend maxpublicstaticvoidmain(String[]args){Listlist=Arrays.asList(1,2,3,4,5,6);Integermax=list.stream().max((a,b)->{if ( a>b){return1;}elsereturn-1;}).get();System.out.println(max);}Remarque : la taille est déterminée ici par des nombres positifs et négatifs et des valeurs 0. Au lieu de l'écrire directement if(a>b){returna;}elseretur

Selon les informations du 22 août, à l'approche de la sortie du téléphone mobile phare de nouvelle génération de Samsung, le S25 Ultra, de plus en plus de détails commencent à émerger. Le célèbre blogueur @ibinguniverse a révélé aujourd'hui plus de spécifications du S25 Ultra sur Weibo. La plus frappante est que sa largeur de corps est la même que celle de l'Apple iPhone 16 Pro Max, tous deux de 77,6 mm. 1. Grâce à l'optimisation supplémentaire de la conception du cadre par Samsung, la taille de l'écran du S25 Ultra a été augmentée à 6,86 pouces tout en conservant la même largeur que celle de l'iPhone 16 Pro Max, offrant aux utilisateurs une expérience visuelle plus immersive. Le blogueur a en outre souligné dans la zone de commentaires que les bords noirs du S25 Ultra sont meilleurs que ceux de l'iPhone 16 Pro Max&

Partie 1 : étapes de dépannage initiales Vérification de l'état du système Apple : avant d'aborder des solutions complexes, commençons par les bases. Le problème ne vient peut-être pas de votre appareil ; les serveurs Apple sont peut-être en panne. Visitez la page État du système d'Apple pour voir si l'AppStore fonctionne correctement. S'il y a un problème, tout ce que vous pouvez faire est d'attendre qu'Apple le résolve. Vérifiez votre connexion Internet : assurez-vous que vous disposez d'une connexion Internet stable, car le problème "Impossible de se connecter à l'AppStore" peut parfois être attribué à une mauvaise connexion. Essayez de basculer entre le Wi-Fi et les données mobiles ou de réinitialiser les paramètres réseau (Général > Réinitialiser > Réinitialiser les paramètres réseau > Paramètres). Mettez à jour votre version iOS :
