Найти текст JavaScript - PullRequest
       4

Найти текст JavaScript

0 голосов
/ 10 сентября 2018

У меня есть строка произвольной длины

Пример:

 sadsadsadsad(323213)dfsssds

 sadsadsadsad(321)dfsssds

Как найти значения в скобках?.

Значение случайной длины

Спасибо за чтение

Ответы [ 7 ]

0 голосов
/ 10 сентября 2018

Попробуйте:

var str =  'sadsadsadsad(321)dfss888s(120)ds';

str.match(/\(\d+\)/g).map ( value => { console.log( value.replace(/[)(]/g, '') ) } );
0 голосов
/ 10 сентября 2018

Вы можете перехватить группу в (), используя replace(), и передать ее функции обратного вызова, которая помещает ее в массив.

var str = 'sadsadsadsad(323213)dfsssds(1234)dfsssds(4567)dfsssds(abcf)';

var arr = [];

str.replace(/\(([a-z0-9]*)\)+/gi, (a,b)=>arr.push(b));

console.log(arr);
0 голосов
/ 10 сентября 2018

Попробуйте, используя следующий код, он поможет вам, если вы удалите пример вложенных скобок "a(bcdefghijkl(mno)p)q"

function removeParentheses(s) {
    let openPatterns = [];
    for(let i=0; i < s.length; i++){

        if(s[i] == '('){
            openPatterns.push(i);
        }

        if(s[i] == ')'){
            const lastIndexOpen = openPatterns.pop();
            const originalTxt = s.slice(lastIndexOpen ,i+1);
            //here you have the raw text      
            const rawText = s.slice(lastIndexOpen+1,i);
            //this code works to remove the parentesis 
            //s= s.replace(originalTxt, reverseTxt);
            //i-=2;
        }
    }
    return rawText;    
}
0 голосов
/ 10 сентября 2018

var str = "sadsadsadsad(323213)dfsssds"; 
var val= str.match(/\((.*?)\)/);
if (val) {
    console.log("found");
 }

Вы можете использовать Regex

var str = "sadsadsadsad(323213)dfsssds"; 
var val= str.match(/\((.*?)\)/);
if (val) {
    console.log("found");
 }
0 голосов
/ 10 сентября 2018

Попробуйте регулярное выражение /\(.*\)/

function getValue(s) {
    var strs = s.match(/\(.*?\)/g);
    if (strs == null) {
        return '';
    }
    return strs.map(str=>str.replace(/[()]/g, ''));
    //return strs.join(' ,').replace(/[()]/g, '')
}



console.log(getValue('sadsadsadsad(323213)dfsssds(abc)'));
console.log(getValue('sadsad(_d_)sadsad(321)dfsssds'));
console.log(getValue('sadsad(33)sadsad(321dfsssds'));
0 голосов
/ 10 сентября 2018

Вы можете использовать indexOf и substring

let str = 'sadsadsadsad(321)dfsssds';

let getFirstIndex = str.indexOf('(');
let getSecondIndex = str.indexOf(')');

let subStr = str.substring(getFirstIndex + 1, getSecondIndex);
console.log(subStr)
0 голосов
/ 10 сентября 2018

Вы можете использовать lastIndexOf и substring

var text = "sadsadsadsad(323213)dfsssds";
var newText = text.substring(text.lastIndexOf("(") + 1, text.lastIndexOf(")"));

console.log(newText)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...