Jquery正则表达式,用于查找和格式化文本部分

时间:2011-08-02 01:16:32

标签: jquery regex string text find

我使用Jquery有许多动态生成的反馈行来测试来自xml的问题。样品:

您回答(是)。您的患者处于中度至高度风险。
您回答(编号)您的患者从低到高风险。
您回答(每周剂量。)您的患者处于中等风险。

如何查找和格式化反馈文本的不同部分?我需要用斜体的引号格式化部分文本。还要以粗体开头用“at”一词格式化部分文本,直到句点标记?

我想有可能使用正则表达式,但我还没有使用它们。  到目前为止,我有以下内容:

var feedbackString = "<p id='feedbackTxt'>" + currentQuizNode.find("Feedback").text() + "</p>";
$("#quizFeedback").append(feedbackString);

提前谢谢你, 阿提拉

2 个答案:

答案 0 :(得分:2)

currentQuizNode.find("Feedback").text().replace(/(.*\()(.*)(\).*patient is\s)(.*)/,"$1<span class=\"answer\">$2</span>$3<span class=\"risk\">$4</span>")

非常难看,但它有效:P

答案 1 :(得分:0)

var feedbackString = "<p id='feedbackTxt'>" + 
  currentQuizNode.find("Feedback").text().
    replace(/"(.*)"/, "<span style='font-style: italic;'>$1</span>").
    replace(/(\bat\b.*?\.)/, "<span style='font-weight: bold;'>$1</span>") + 
    "</p>";
$("#quizFeedback").append(feedbackString);

如果您打算用括号代替引号,请更改:

replace(/"(.*)"/, "<span style='font-style: italic;'>$1</span>").

要:

replace(/(\(.*?\))/, "<span style='font-style: italic;'>$1</span>").