簡體   English   中英

Javascript從字符串中提取正則表達式

[英]Javascript extract regular expression from string

我嘗試了幾種方法,我無法弄清楚為什么我的.match總是返回null。 鑒於以下字符串,我如何將2017年6月4日提取到自己的變量中?

var str = "I need the only the    date 04-Jun-2017\n"

str.replace(/\n/g,' ');
var date = str.match(/^[01][0-9]-(Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec)-\d{4}$/);
alert(date)

首先, str.replace(/\\n/g,' '); 不修改str var,因為字符串是不可變的。 然后,您不需要錨點^$ ,因為日期在字符串內部,它不等於字符串本身。 此外,您需要匹配從131天數,但[01][0-9]僅匹配從0019

你可以考慮使用

 var str = "I need the only the date 04-Jun-2017\\n" var date = str.match(/\\b\\d{1,2}-(Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec)-\\d{4}\\b/i); if (date) { console.log(date[0]); } 

錨點用字邊界\\b替換,日期部分更改為\\d{1,2}匹配任何1或2位數。 i修飾符將使模式不敏感。

首先,你應該更清楚你的問題。 第二,這可能就是答案

var str = "I need the only the    date 04-Jun-2017\n"
var result  = str.replace('I need the only the    ','');
alert(result);

看看.replace(valueToSearch,valueToReplace)函數如何需要兩個參數,首先是要替換的文本,所以你放入其中的內容將在字符串內搜索,第二個參數是它將替換它的值,所以如果你想擺脫它只是放一個空字符串。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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