|text to get| Other text.... migh have "|"'s ...
Comment puis-je obtenir les éléments text to get
de la chaîne (et les supprimer)?
Ce ne devrait être que le premier match
var test_str = "|text to get| Other text.... migh have \"|\"'s ...";
var start_pos = test_str.indexOf('|') + 1;
var end_pos = test_str.indexOf('|',start_pos);
var text_to_get = test_str.substring(start_pos,end_pos)
alert(text_to_get);
Vous n'avez pas besoin d'une expression régulière pour cela; Tirer le moteur de regex est complètement excessif pour une tâche aussi simple.
Il suffit d'utiliser la manipulation de chaîne de base:
function getSubStr(str, delim) {
var a = str.indexOf(delim);
if (a == -1)
return '';
var b = str.indexOf(delim, a+1);
if (b == -1)
return '';
return str.substr(a+1, b-a-1);
// ^ ^- length = gap between delimiters
// |- start = just after the first delimiter
}
print(getSubStr('|text to get| Other text.... migh have "|"s ...', '|'));
// Output: text to get
Pour l'obtenir:
"|text to get| Other text.... migh have \"|\"'s ...".match(/\|(.*?)\|/)
Pour l'enlever:
"|text to get| Other text.... migh have \"|\"'s ...".replace(/\|(.*?)\|/, "")
Je ne suis pas le expert sur Regex, donc si quelqu'un a des améliorations, merci de le modifier.
vous devriez rechercher les fonctions suivantes:
split()
substr()
En fonction de la manière dont vous souhaitez résoudre votre tâche, vous pouvez l’utiliser.
Vous devrez obtenir le texte que vous voulez en utilisant match
, puis lancez replace
avec:
var text = "|text to get| Other text.... migh have \"|\"'s ...";
text.replace(text.match(/\|([^|]*)\|/)[1], "");
string = '|text to get| Other text.... migh have "|"\'s ...';
string = string.replace(/^\|[^|]*\|/, '');