簡體   English   中英

.match特定模式

[英].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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM