Regex-PHP到Javascript

Regex-PHP到Javascript,javascript,regex,Javascript,Regex,我有以下正则表达式: <div\s*class="selectionDescription">(.*?)<\/div> s不是一个标志,因此如果您尝试类似于newregexp(“(.*?”,“s”)的操作,则会发现一个错误 您不需要添加任何标志,除了多次捕获此div的g标志之外。() s不是一个标志,因此如果您尝试类似于newregexp(“(.*?”,“s”)的操作,则会发现一个错误 您不需要添加任何标志,除了多次捕获此div的g标志之外。() 如果您跨越多行,并

我有以下正则表达式:

<div\s*class="selectionDescription">(.*?)<\/div>

s
不是一个标志,因此如果您尝试类似于
newregexp(“(.*?”,“s”)
的操作,则会发现一个错误

您不需要添加任何标志,除了多次捕获此div的
g
标志之外。()

s
不是一个标志,因此如果您尝试类似于
newregexp(“(.*?”,“s”)
的操作,则会发现一个错误

您不需要添加任何标志,除了多次捕获此div的
g
标志之外。()


如果您跨越多行,并且您指的是
s
提供的
单行
模式,那么您可以使用
[\s\s]
或其他类似的“全包、全排他”样式进行模拟:
[\d\d]
[\W\W]

这将允许它跨越多条线,并且仍然匹配:

<div\s*class="selectionDescription">([\S\s]*?)<\/div>
也会这样做,但只在内部

在这一点上,稍微进一步优化了它,但是HTML并不是用HTML处理事情的最佳方式。jQuery可以快速且更“安全”地执行此操作:
$('div.selectionDescription').html()


当然,此时您可能无法访问它,但HTML通常不是解析HTML的最佳方法。

如果您跨越多行,并且您指的是
s
提供的
单行
模式,您可以使用
[\s\s]
或其他类似的“全包、全包”模式来模拟它样式:
[\d\d]
[\W\W]

这将允许它跨越多条线,并且仍然匹配:

<div\s*class="selectionDescription">([\S\s]*?)<\/div>
也会这样做,但只在内部

在这一点上,稍微进一步优化了它,但是HTML并不是用HTML处理事情的最佳方式。jQuery可以快速且更“安全”地执行此操作:
$('div.selectionDescription').html()


当然,此时您可能无法访问它,但HTML通常不是解析HTML的最佳方法。

Javascript确实支持
\s
Uncaught SyntaxError:提供给RegExp构造函数的标志无效(…)您看到的问题是什么?为什么不使用DOM并执行类似于
document.getElemementsByClassName('selectionDescription')
?这个字符串是从哪里来的,为什么要在上面使用正则表达式?你能给我们看看你的实际JavaScript代码吗
\g
不是一个标志,顺便说一句,它是
/g
。是否将
\s
(匹配空白字符)与
/s
标志(使
匹配新行)或
/g
(“全部匹配”)混淆?Javascript支持
\s
未捕获的语法错误:提供给RegExp构造函数的标志无效(…)您看到的问题是什么?为什么不使用DOM并执行类似于
document.getElemementsByClassName('selectionDescription')
?这个字符串是从哪里来的,为什么要在上面使用正则表达式?你能给我们看看你的实际JavaScript代码吗
\g
不是一个标志,顺便说一句,它是
/g
。是否将
\s
(匹配空白字符)与
/s
标志(使
匹配新行)或
/g
(“全部匹配”)混淆?
<div\s*class="selectionDescription">([\S\s]*?)<\/div>
<div\s*class="selectionDescription">((?:[^<]+|<(?!\/div>))*)<\/div>