Я боролся с той же проблемой, пытаясь сделать мое приложение будущим доказательством, но эти ребята заставили меня идти в правильном направлении. Я фактически не проверяю номер, чтобы увидеть, работает ли он или нет, я просто пытаюсь убедиться, что была введена серия чисел, которая может иметь или не иметь расширение.
Худший случай если пользователь должен был вытащить неформатированный номер из XML-файла, они все равно просто набрали числа на номерной панели телефона 012345678x5
, и никаких реальных причин сохранить его довольно. Этот тип RegEx для меня выдаст что-то вроде этого:
\d+ ?\w{0,9} ?\d+
01234467 extension 123456
01234567x123456
01234567890
Вы можете просто установить свой viewBox svg в свою Bounding Box.
function setViewbox(svg) {
var bB = svg.getBBox();
svg.setAttribute('viewBox', bB.x + ',' + bB.y + ',' + bB.width + ',' + bB.height);
}
document.querySelector('button').addEventListener('click', function() {
setViewbox(document.querySelector('svg'));
});
svg { border: 1px solid }
<svg version="1.1" id="svg" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" viewBox="0 0 500 300" enable-background="new 0 0 500 300" xml:space="preserve" width="250" height="150">
<path fill="none" stroke="#B2E230" d="M413.7,276.5c0,0,67-37,116,0c-24.1-33,16.4-53,0-34s-100-2-75-38" transform="translate(-75,-75)" />
</svg>
<button>setViewbox</button>
Примечание: оно также будет учитывайте невидимые якоря ваших патчей.
removeChild()
теперь работает с вашим кодепом – Kaiido 12 March 2015 в 10:40x
вашего пути отрицательная. Таким образом, быстрое исправление будет заключаться в том, чтобы добавить некоторую проверку при вычитании vB.x из vB.w (l24 моего фрагмента)if(vB.x>0)vB.w-=vB.x if(vB.y>0)vB.h-=vB.y
jsfiddle.net/vbrnuoj2 Но я переписал все это, как я нахожу это довольно уродливо сейчас ... – Kaiido 13 October 2015 в 16:26