[英].match specific pattern
我正在嘗試使用.match()
方法來匹配特定的模式,但是我有點困惑。 我有一個看起來像這樣的字符串。
SomeError on example.com/register/
[u'Some Error Message Here, That we want to parse'].
Some more text here
Some more text here
我試圖在Some Error Message Here, That we want to parse
解析出Some Error Message Here, That we want to parse
從上述字符串中Some Error Message Here, That we want to parse
文本。 我正在使用的當前regex
是:
response.match(/.*[u'(.*).*']/)
這給了我:
[u'Some Error Message Here, That we want to parse.'
但我也想消除[u'
和'
part,以便結果看起來像這樣:
Some Error Message Here, That we want to parse
請讓我知道我在做什么錯。 謝謝
實際上,您的正則表達式是正確的,除了[ ]
括號應轉義。
match
函數為您提供了一系列匹配項,您只需要獲取正確的匹配項即可:
var str="SomeError on example.com/register/\n[u'Some Error Message Here, That we want to parse'].\n\nSome more text here\nSome more text here";
var n = str.match(/.*\[u'(.*).*'\]/);
alert(n[1]); // Prints "Some Error Message Here, That we want to parse"
不要忘記使用方括號( [
和]
):
response.match(/.*\[u'(.*).*'\]/)
首先,您需要轉義方括號。
match
返回一個matchs數組,因此,用圓括號括起來的值將在此數組的索引1處。
response.match(/.*\[u'(.*)'\]/)[1]
或者你可以嘗試
/.*\[u'(.*)'\]/.exec(response)[1]
這應該做。 順便說一句,您的正則表達式是錯誤的...(您忘記了轉義[
和]
<html>
<body>
<script type="text/javascript">
var response= "[u'Some Error Message Here, That we want to parse'].";
if(response.match(/^.*\[u'.*'\].*$/)){
var message = response.replace(/^.*\[u'/, '');
var message = message.replace(/\'].*$/, '');
document.write(message);
}
</script>
</body>
</html>
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.