js 正则 匹配任意字符包括换行符

JavaScript018

js 正则 匹配任意字符包括换行符,第1张

按理 \s 结合 \S 即可表示任意字符,但是如果没有明确顺序的话就不对

最终正则为 /[\s\S]*/

举一反三

当然也可以用 /[\d\D]*/ 、 /[\w\W]*/ 来表示。

正则表达式可以用.*匹配任意除换行之外的字符。但如果内容中包含任意多个换行怎么匹配?用.*是匹配失败的。但可以用[\s\S]*?。

\s是匹配所有空白字符,\S是匹配所有非空白字符,那么[\s\S]这个组合就可以匹配所有字符了。

但是换行符是匹配不到的:

//-- 通过正则表达式来替换换行符

var regRN = /\r\n/g

str = str.replace(regRN,"<br />")

//-- 其他场景(分别替换\r和\n)

var regR = /\r/g

var regN = /\n/g

str = str.replace(regR,"\\r").replace(regN,"\\n")

<script type="text/javascript">

function o(id)

{

return document.getElementById(id)

}

function check()

{

var pattern1 = /^0.*/g

var text1 = o("zeroBegin").value

if("" != text1)

{

var isZeroBegin = pattern1.test(text1)

if(isZeroBegin)

{

alert("第一个框ok!")

}

else

{

alert("第一个框填写错误,必须第一个字符为0后面的字符任意!")

}

}

var pattern2 = /^0(\D*)$/g

var text2 = o("zeroBeginWithNoNum").value

if("" != text2)

{

var isZeroBeginWithNoNum = pattern2.test(text2)

if(isZeroBeginWithNoNum)

{

alert("第二个框ok!")

}

else

{

alert("第二个框填写错误,必须第一个字符为0后面的字符全部不为数字!")

}

}

}

</script>

<input type="text" id="zeroBegin" /> 第一个字符为0后面的字符任意<br/>

<input type="text" id="zeroBeginWithNoNum" /> 第一个字符为0后面的字符全部不为数字<br/>

<br/>

<input type="button" value="检测" onclick="check()"/>