Regex - PHP to Javascript
Regex - PHP to Javascript
我有以下正则表达式:
<div's*class="selectionDescription">(.*?)<'/div>
它与PHP完美配合。我知道javascript不支持''s标志。
我尝试使用''g标志,但是我的模式不匹配。
我希望在以下字符串中匹配div 中的所有内容:
<div class="selectionDescription">Text to match</div>
我在javascript中收到以下错误:
Uncaught SyntaxError: Invalid flags supplied to RegExp constructor 's'(…)
你的模式似乎有效。
s
不是标志,所以如果你正在尝试类似new RegExp('<div's*class="selectionDescription">(.*?)<'/div>', 's')
的东西,那么是的,你会发现一个错误。
您不需要添加任何标志,除了多次捕获此div 的g
标志。(看看吧)
也许查看有关Javascript正则表达式的快速入门?
如果你跨越多行,你的意思是s
提供的single line
模式,你可以用['S's]
或其他类似的"全包,全独"风格来模拟它:['d'D]
、['W'w]
等。
这将允许它跨越多行并且仍然匹配:
<div's*class="selectionDescription">(['S's]*?)<'/div>
但是,您需要警惕使用惰性*?
量词。看看步数为 220 的 https://regex101.com/r/xD2jV8/1。
如果<div>
和</div>
标签之间的内容非常大,这将变得非常昂贵,计算速度非常快。
虽然可读性略低,
<div's*class="selectionDescription">((?:[^<]+|<(?!'/div>))*)<'/div>
会做同样的事情,但只需 69 个步骤。
在这一点上,https://regex101.com/r/xD2jV8/3 稍微进一步优化了它,但HTML真的不是用HTML处理事情的最佳方式。 jQuery可以快速且"更安全"地执行此操作: $('div.selectionDescription').html()
当然,此时您可能无法访问它,但 HTML 通常不是用于解析 HTML 的最佳选择。
相关文章:
- JavaScript to jQuery for KendoUI
- Eventlistener in javascript to jQuery
- JavaScript to CoffeeScript Error
- URI escape / unescape from Javascript to Perl
- javascript to change innerHTML
- Javascript to jQuery? (Iframe)
- Javascript to hide a DIV
- JavaScript to PHP function
- Javascript to wordpress website?
- JavaScript to Java to MYSQL Query
- Javascript to VB.Net [FEW LINES]
- Javascript to jquery Ajax request
- Inline Javascript to Unobtrusive JavaScript?
- javascript to control css
- Javascript to Jquery?
- Javascript to Django views.py?
- javascript to asp.net ClientIDMode
- HTML5 + JavaScript To Flash?
- Javascript to validate URL
- Javascript to Microsoft SQL Server (AJAX request)