从字符串中提取一段文本 - Javascript

时间:2015-12-29 00:37:12

标签: javascript

我正在使用import javax.swing.JFrame; import javax.swing.JPanel; import javax.swing.*; import java.awt.Dimension; public class Main { public static void go() { JFrame fr = new JFrame(); JLayeredPane lpane = new JLayeredPane(); JPanel p = new JPanel(); JPanel p2 = new JPanel(); JPanel p3 = new JPanel(); int size = 120; p.setSize(500, 500); p.setLayout(new BoxLayout(p, BoxLayout.PAGE_AXIS)); p2.setSize(500, 500); p2.setLayout(new BoxLayout(p2, BoxLayout.PAGE_AXIS)); p2.setOpaque(false); p3.setSize(500, 500); p3.setLayout(new BoxLayout(p3, BoxLayout.PAGE_AXIS)); p3.setOpaque(false); final int frHEIGHT = 500; final int frWIDTH = 500; fr.setSize(frWIDTH, frHEIGHT); BodyComponent bC = new BodyComponent(frWIDTH, frHEIGHT, size); BackgroundComponent bkC = new BackgroundComponent(frWIDTH, frHEIGHT, size); //initializing LegComponent params double x = frWIDTH/3; double y = frHEIGHT/2; double setX = x+size/2; double setY = y+size/2; LegsComponent lC = new LegsComponent(x, y, size, setX, setY); p.add(bkC); p2.add(bC); p3.add(lC); lpane.setBounds(0, 0, 500, 500); lpane.add(p, new Integer(0)); lpane.add(p2, new Integer(2)); lpane.add(p3, new Integer(1)); fr.getContentPane().add(lpane); fr.setVisible(true); for (int i = 45; i > 0; i--){ JPanel P3 = new JPanel(); JLayeredPane lPane = new JLayeredPane(); double n = .01111*i; lPane.removeAll(); LegsComponent lC2 = new LegsComponent(x+n, y+n, size, setX, setY); fr.getContentPane().removeAll(); P3.add(lC2); P3.setOpaque(false); lPane.add(p, new Integer(0)); lPane.add(p2, new Integer(2)); lPane.add(P3, new Integer(1)); fr.getContentPane().add(lPane); fr.setVisible(true); Tools.pause(100); } } } document.getElementById获取innerHTML。它会返回这样的东西......

<div>

我想使用Javascript从该字符串中提取“Unit 1,Lesson 2”部分。但它并不总是“单元1,第2课”。它可能是“第10单元,第8课”,因此使用<span style="font-size: 18px; font-weight:bold; color: #545454;">Unit 1, Lesson 2: Ordering Large Numbers</span>似乎已经出局了。

期望的结果......

substring()应该产生“第1单元,第5课”

<span style="font-size: 18px; font-weight:bold; color: #545454;">Unit 1, Lesson 5: Ordering Large Numbers</span>应该产生“第11单元,第28课”

我对Javascript一点都不擅长,所以如果我错过了一个简单的功能,请告诉我它是什么。

编辑:或者,如果有办法在“:”之后切断所有内容,我也可以使用它。

2 个答案:

答案 0 :(得分:2)

您可以使用textContent,它只返回没有html的文本。

所以如果你有元素:

<span id="test"><span style="font-size: 18px; font-weight:bold; color: #545454;">Unit 1, Lesson 2: Ordering Large Numbers</span></span>

你可以得到它的'第1单元,第2课'部分:

document.getElementById('test').textContent.split(":")[0];

答案 1 :(得分:1)

您可以使用javascript的正则表达式模式匹配功能:

var pattern = /.*(Unit \d+, Lesson \d+):/
var el = document.getElement....innerHTML
var match = pattern.match(el)[1];
alert(match)