2016-04-12 24 views
0

Aşağıda benim kodudur ..Normal ifadede "*" yıldız işareti nasıl algılanır?

/(?!\*)/.test("test*test") 

sonuç hala doğru dönün.

Dizede herhangi bir * varsa, false döndürecek dizeyi doğrulamak istiyorum.

Kodda bir sorun mu var?

+0

'ile sonuçlanır sına sadece'/\ */'Sen çıkışını ortadan kaldıran –

+0

:!' (/ \ * /. test (str)) – zhirzh

cevap

4

Regex'iniz, başlangıç ​​konumuyla eşleştiği için true değerini döndürür. Az önce söylediğin test "* tarafından takip edilmeyen bir pozisyon var mı?" Tam olarak herhangi bir dizenin eşleşeceği - eşleşmeleri, * sonrasında bir (noter) * tarafından takip edilmeyen bir konum olduğu için eşleşir. regex ile Bunu yapmak

"test*test".indexOf("*") < 0 // true if no * in string 

gibi bir şey olurdu:

Bir dize * içermiyorsa test etmek isterseniz, en basit çözümdür

/^[^*]*$/.test("test*test") 

Ama bu fazla iş .

+0

Çok teşekkürler.Tüm beyin regex hakkında düşünmek ve tamamen indexOf unutmak oldu ... XD – Dreams

+1

Bir noktada hepimize olur, eminim: D Regex bir Güçlü bir araç, ama bazen eldeki görev için çok güçlü. JQuery gibi. –

-1

Basitçe çıktı

* varlığı için test etmek ve etkisiz hale
var string="123*456"; 
console.log( !(/\*/.test(string)) ); 
false 

var string="12*34*56"; 
console.log( !(/\*/.test(string)) ); 
false 

var string="123456"; 
console.log( !(/\*/.test(string)) ); 
true 
Sen ortadan kaldıran
İlgili konular