У меня есть строка случайной длины
Бывший:
sadsadsadsad(323213)dfsssds
sadsadsadsad(321)dfsssds
Как найти значения в скобках ?.
Случайная длина значения
Спасибо за чтение
Возможный дубликат Регулярное выражение для получения строки между круглыми скобками в Javascript
Я не нахожу регулярного выражения. Спасибо
Вы можете принять Дубликат, ответы дадут вам все, что вам нужно.



![Безумие обратных вызовов в javascript [JS]](https://i.imgur.com/WsjO6zJb.png)


Вы можете использовать lastIndexOf и substring
var text = "sadsadsadsad(323213)dfsssds";
var newText = text.substring(text.lastIndexOf("(") + 1, text.lastIndexOf(")"));
console.info(newText)Спасибо за помощь, adsdadsdas (123) adadadad (123431) Мне нужно найти (123) и (123431) как это сделать?
Вы можете использовать indexOf и substring
let str = 'sadsadsadsad(321)dfsssds';
let getFirstIndex = str.indexOf('(');
let getSecondIndex = str.indexOf(')');
let subStr = str.substring(getFirstIndex + 1, getSecondIndex);
console.info(subStr)Спасибо за помощь, adsdadsdas (123) adadadad (123431) Мне нужно найти (123) и (123431) как это сделать?
Попробуйте регулярное выражение /\(.*\)/
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.info(getValue('sadsadsadsad(323213)dfsssds(abc)'));
console.info(getValue('sadsad(_d_)sadsad(321)dfsssds'));
console.info(getValue('sadsad(33)sadsad(321dfsssds'));Спасибо за помощь, adsdadsdas (123) adadadad (123431) Мне нужно найти (123) и (123431) как это сделать?
@ Lightrain125 adsdadsdas(123)adadadad(123431) вернуть 123123431?
возврат 123,123123431
Вы имеете в виду возвратный массив или возвращаемую строку с ,?
var str = "sadsadsadsad(323213)dfsssds";
var val= str.match(/\((.*?)\)/);
if (val) {
console.info("found");
}Вы можете использовать Regex
var str = "sadsadsadsad(323213)dfsssds";
var val= str.match(/\((.*?)\)/);
if (val) {
console.info("found");
}
Спасибо за помощь, adsdadsdas (123) adadadad (123431) Мне нужно найти (123) и (123431) как это сделать?
Пожалуйста, обратитесь к этой статье: stackoverflow.com/questions/6323417/…
Попробуйте использовать следующий код, он поможет вам, если вы удалили вложенные круглые скобки. Пример "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;
}
Попробуй это:
var str = 'sadsadsadsad(321)dfss888s(120)ds';
str.match(/\(\d+\)/g).map ( value => { console.info( value.replace(/[)(]/g, '') ) } );Вы можете поймать группу в () с помощью 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.info(arr);
Что вы пробовали, чтобы их найти? Вы пробовали регулярное выражение?