2013-04-10 44 views
-1

格式化JavaScript中的字符串,这是我的字符串我从数据库如何使用正则表达式

var str=" The requirements of this chapter apply to the following:(1) New 
buildings or portions thereof used as health care occupancies (see 1.4.1)(2) 
Additions made to, or usedas, a health care occupancy (see 4.6.6 and 18.1.1.4)(2) 
and test.Exception: Exception no 1 The requirement of 18.1.1.1.1 shall not apply 
to additions classified as occupancies other than health care that are separated 
from the health care occupancy in accordance with 18.1.2.1(2) and conform to the 
requirements for the specific occupancy in accordance with Chapters 12 through 17 
and Chapters 20 through 42, as appropriate.(3) Alterations, modernizations, or 
renovations of existing health care occupancies (see 4.6.7 and 18.1.1.4)(1)(4) 
Existing buildings or portions thereof upon change of occupancy to a health care 
occupancy (see 4.6.11)Exception *: Facilities where the authority having 
jurisdiction has determined equivalent safety has been provided in accordance 
with Section 1.5." 

我已经使用了以下条件得到

str = str.replace(/(\s\(\d+\)|exception\s*\:*)/gi, "<br /><br />$1&nbsp"); 

从中我得到:

The requirements of this chapter apply to the following: 

(1) New buildings or portions thereof used as health care occupancies (see 1.4.1) 

(2) Additions made to, or usedas, a health care occupancy (see 4.6.6 and 18.1.1.4) 

(2) and test. 

Exception: 

Exception no 1 The requirement of 18.1.1.1.1 shall not apply to additions classified as occupancies other than health care that are separated from the health care occupancy in accordance with 18.1.2.1(2) and conform to the requirements for the specific occupancy in accordance with Chapters 12 through 17 and Chapters 20 through 42, as appropriate. 

(3) Alterations, modernizations, or renovations of existing health care occupancies (see 4.6.7 and 18.1.1.4) 

(1) 

(4) Existing buildings or portions thereof upon change of occupancy to a health care occupancy (see 4.6.11) 

Exception *: Facilities where the authority having jurisdiction has determined equivalent safety has been provided in accordance with Section 1.5. 

但我期望的输出是

The requirements of this chapter apply to the following: 

(1) New buildings or portions thereof used as health care occupancies (see 1.4.1) 

(2) Additions made to, or usedas, a health care occupancy (see 4.6.6 and 18.1.1.4)(2) and test. 

Exception: Exception no 1 The requirement of 18.1.1.1.1 shall not apply to additions classified as occupancies other than health care that are separated from the health care occupancy in accordance with 18.1.2.1(2) and conform to the requirements for the specific occupancy in accordance with Chapters 12 through 17 and Chapters 20 through 42, as appropriate. 

(3) Alterations, modernizations, or renovations of existing health care occupancies (see 4.6.7 and 18.1.1.4)(1) 

(4) Existing buildings or portions thereof upon change of occupancy to a health care occupancy (see 4.6.11) 

Exception *: Facilities where the authority having jurisdiction has determined equivalent safety has been provided in accordance with Section 1.5. 

在此先感谢..

+0

我认为这将是如果你能够自己处理这个问题之后,能够证明你正在努力解决这个问题的哪一部分,那更好。 – Peter 2013-04-10 14:23:05

+0

是你得到错误或什么? – 2013-04-10 14:23:34

+1

您提到了16个问题。现在是时候多加一点努力来正确格式化您的文章。 – 2013-04-10 14:24:08

回答

0

它已经很难正则表达式里面的“计数”,但你问不能用一个做什么。正则表达式没有任何回忆,因此在第二个(2)的情况下,你将不会有任何工具知道它已经被匹配。

现在,来了一个有趣的替换函数的工具。你可以指定一个回调函数,在这里你可以做一些检查。回调参数将是:
1)整个匹配的字符串
2)捕获组(所以0到n的参数)
3)匹配
4)初始字符串

所以基本上的位置,你可以捕获你看到的数字,如果你已经看到它们,什么都不做(返回相同的字符串,即参数[0]),以及其他的东西来帮助你...