我有这个字符串= rgb(192,194,194)-10px -10px 0px; 我需要获得该字符串中的第一个-10px并存储为变量。这个数字是动态的,会发生变化。
感谢您的帮助。 这就是我所拥有的。我正在抓住跨度的文本阴影,需要获得将添加到工具提示的-10px值。这是一个动态数字,会根据用户点击滑块的位置而改变。我只是想弄清楚如何解析该字符串以获得-10px值。
$('.slider-track.shadow').on('click', function (e) {
e.preventDefault();
var currentValue = $('.editing').find('span').css('text-shadow');
var replaceValue = currentValue.replace(/\D/g, '');
console.log(currentValue);
$('.tooltip-inner.shadow').text(currentValue);
});
答案 0 :(得分:2)
这个正则表达式应该可以解决问题。
var str = "rgb(192, 194, 194) -10px -10px 0px;";
var m = str.match(/(.[^)][^\s]*)+\s(.*)+\s/);
if ((m instanceof Array) && m[1]) {
console.log(m[1].trim()) // '-10px'
}
答案 1 :(得分:0)
你走了。
var stringToUse = "rgb(192, 194, 194) -10px -10px 0px",
start = stringToUse.lastIndexOf(')'),
end = stringToUse.indexOf('px');
stringToUse = stringToUse.substring(start +1, end).trim();
//outputs "-10"
希望这有帮助。
var stringToUse = "rgb(192, 194, 194) 0 -10px 0px",
start = stringToUse.lastIndexOf(')') + 1,
end = stringToUse.slice(start).trim().indexOf(" ");
stringToUse = stringToUse.slice(start).trim()
stringToUse.slice(0, end)
效果更好,或者您可以使用Reg表达式,如其他答案所述。
答案 2 :(得分:0)
使用Regexp匹配。您可以在RegExp doc
找到更多信息var x = "rgb(1,2,3) 0px 10px -20px"
var y = x.match(/\) ([+-]?[0-9]*px)/)
var z = x.match(/\) ([+-]?[a-z]*px)/)
console.log("original=",x,"; good match=",y,"; no match=",z)
//prints
original= rgb(1,2,3) 0px 10px -20px ; good match= [") 0px", "0px"] ; no match= null
HTH。 RegExp可以为您做更多的事情。
答案 3 :(得分:0)
这是一个带有一些解释的正则表达式示例:
var str = "rgb(192, 194, 194) -10px -10px 0px;";
var results = str.match(/.*\)\s?([^\s]*)/);
console.log(results); // ["rgb(192, 194, 194) -10px -10px 0px;", "-10px"]
分手:
此在线正则表达式应用here更好地说明了上述内容。