我有以下javascript字符串:
#d1{width:100px;}
它看起来像css代码
现在我写了一个正则表达式,在字符串中找到以#
或.
开头的元素。
正则表达式是这样的:
/(?:(#|\.)([A-Za-z0-1\-]+))/g
和上面的正则表达式成功匹配上述字符串。
但是现在当我在Google控制台中对上面的字符串测试这个正则表达式时,它返回false
我写的是:var str = "#d1{width:100px} " // returns undefined
var regex = / (?:(#|\.)([A-Za-z0-1\-]+)) /g //undefrined
regex.test(str) // returns false
为什么它不起作用?
答案 0 :(得分:4)
你的正则表达式中有空格,你可能不想要那里:
var str = "#d1{width:100px} " // returns undefined
var regex = /(?:(#|\.)([A-Za-z0-1\-]+))/g //undefrined
// ^-------------------------^----- see, no spaces here
regex.test(str) // returns true
答案 1 :(得分:1)
试试这个。 /和parantheses之间的这些空间是混蛋。
function regtest()
{
var str = "#d1{width:100px}" // returns undefined
var regex = /(?:(#|\.)([A-Za-z0-1\-]+))/g //undefrined
alert(regex.test(str));
}

<button onclick="regtest()">Test</button>
&#13;