В чем разница между этими регулярными выражениями сменные?Разница в регулярных выражениях между ((?: [^ "]) *) И ([^ "] *)
((?:[^\"])*)
([^\"]*)
фон на этот вопрос:
Редактор Javascript WYSIWYG (TinyMCE) не разобрать мой HTML код в Firefox (23.0.1 и 25.0a2), но работает в в Chrome.
Я нашел регулярное выражение обвинить:
attrRegExp = /([\w:\-]+)(?:\s*=\s*(?:(?:\"((?:[^\"])*)\")|(?:\'((?:[^\'])*)\')|([^>\s]+)))?/g;
, который я модифицированную, заменив
((?:[^\"])*)
с
([^\"]*)
и
((?:[^\'])*)
с
([^\']*)
результирующее регулярное выражение работает в обоих браузерах для моего теста
attrRegExp = /([\w:\-]+)(?:\s*=\s*(?:(?:\"([^\"]*)\")|(?:\'([^\']*)\')|([^>\s]+)))?/g
может кто-то положил некоторый свет на это?
мои данные теста, который работает только с модифицированным регулярным выражением является большое изображение> 700 кб, как:
var testdata = '<img alt="" src="data:image/jpeg;base64,/9j/4AAQSkZJRgA...5PmDk4FOGOHy6S3JW120W1uCJ5M0PBa54edOFAc8ePX/2Q==">'
делать что-то подобное испытание:
testdata.match(attrRegExp);
особенно когда данные контроля большой, немодифицированное регулярное выражение, скорее всего, терпит неудачу в firefox.
Вы не можете найти jsfiddle example here:
Nice наблюдения. Может быть, ошибка Firefox/Gecko? –
@ Cybȫʁgϟ37: Это не поможет OP вообще, так как он не виноват в коде TinyMCE (я полагаю) –
@NiklasB. - Ах, теперь я понимаю. – JDB