2010-02-15 43 views
2

我有一些文字,其中某些單詞是「真實」單詞,而其他文字是將用一些文本替換的掩碼,並用「%」 。下面是例子:用於解析JavaScript中「真實」單詞的正則表達式

你好親愛的%姓名!你是%Age%y.o.

應該使用什麼正則表達式來獲得「真實」的單詞,而不使用後視,因爲它們不存在於JavaScript中?

UPD:我想要得到單詞「你好」,「親愛的」,「你是」,「y.o.」。

+1

只要你不試圖解析HTML ... –

+0

你想達到什麼目的? – Gumbo

+0

所以...從你想要的例子字符串中「你好親愛的你是y.o」作爲結果嗎? – Erik

回答

1

如果我已經正確理解你的問題,這可能工作。

我會繞過它,而不是找到真正的話我會刪除「假詞」。

s = "Hello dear %Name%! You're %Age% y.o." 
realWords = s.replace(/%.*?%/g, "").split(/ +/) 
1

你可以使用split得到的話,之後過濾詞:

var str = "Hello dear %Name%! You're %Age% y.o.", words; 
words = str.split(/\s+/).filter(function(val) { 
    return !/%[^%]*%/.test(val); 
}); 
0

做搜索,並用正則表達式替換,使用字符串的replace()方法:

myString.replace(/replaceme/g, "replacement") 

使用/ g修飾符可確保替換所有出現的「replaceme」。第二個參數是具有替換文本的普通字符串。

0

您可以使用%[^%] *?%來匹配%Something%匹配項,但您如何存儲像名稱和年齡這樣的單個掩碼值?

+0

該文本由用戶提供,並帶有一些掩碼。信息是用俄語發佈的,所以我最終想要實現的是音譯所有的單詞,除了掩碼的單詞外。然後將音譯後的消息傳輸到服務器,在那裏解析,並將掩碼替換爲真實值。 – HiveHicks

0

在Javascript中使用正則表達式,並根據匹配的正則表達式拆分字符串。

//javascript 
var s = "Hello dear %Name%! You're %Age% y.o."; 
words = s.split(/%[^%]*?%/i); 

//To get all the words 
for (var i = 0; i < words.length; i++) { 

}