Hỏi về JS

Đỗ Việt
(doviet)

Thành viên danh dự
Làm thế nào để kiểm tra xem trong field input chỉ có các chữ cái trên bàn phím, không có số, không chữ cái có dấu, không kí từ đặc biệt... Tóm lại là chỉ có từ a --> z ?
 
dùng charAt(vị_trí) để được trả về ký tự ở 1 vị trí nhất định. Kiểm tra xem nó có nằm trong khoảng từ A --> Z ko.
 
Còn việc kiểm tra có nằm trong khoảng từ a --> z không thì dùng array hay là dùng mã ASCII của nó ?
 
nếu dùng charAt thì dùng array, còn nếu dùng charCodeAt thì dùng mã của nó. Trước khi kiểm tra toLowerCase hoặc toUpperCase để đơn giản hóa.
 
:(( Thằng nhóc này có khả năng reply bài tốc độ khủng khiếp :((

Ok chú thích thêm về phần uppercase và lowercase đáng chú ý đấy, cảm ơn em ;)
 
Anh thường phải dùng indexOf()!="-1" để kiểm tra xem kí tự có tồn tại trong code không. Có cái nào khác tương tự thế không ? search() hay cái gì đó thì phải ?
 
Có lastIndexOf & search. Nhưng search (& match) phải dùng RegExp ---> rất phức tạp, nếu chỉ để xem có ký tự trong chuỗi hay ko thì chỉ nên dùng indexOf.
 
Chỉnh sửa lần cuối:
lastIndexOf() thì là để tính từ cuối string lên à :-/
Thế tức là thường thì có thể dùng indexOf()!="-1" chứ gì ? Anh cứ phải luôn để cái !="-1", vì nếu không thì lúc nào cũng thỏa mãn hết :-?
 
lastIndexOf tính từ cuối String lên.

Thực ra ko cần "-1", chỉ cần -1 thui vì nó là số chứ đâu phải String.
 
Ừa, với số thì có ngoặc hay không cũng thế thôi mà :) anh có thói quen viết thế cho đảm bảo luôn đúng :D
 
Ừa, với số thì có ngoặc hay không cũng thế thôi mà anh có thói quen viết thế cho đảm bảo luôn đúng
Để đảm bảo luôn đúng thì phải bỏ nó đi mới đúng. Bởi vì chính xác nhất vẫn phải là -1 chứ ko phải "-1", có thể có ngôn ngữ ko chấp nhận thế đâu.
 
Ô, thế à ? :eek:
Ừm ừm, cảm ơn em, rút kinh nghiệm ;)
 
Hừm, một trang web có:

- Đoạn này trong header:
<script language="javascript"><!--
xI44="TiP\;\-T7\!h",zA40="Ti7\`\!77\-h";0.6284438,lU61="0.753871",zA40='\`\!\_\\Ws\)\}K\;2\(\?P\]RT\|\@\+\ \&\~xvu\^zfb98ed\nA\[XJ\*pV\/Uh\rog6qiBtcYlO\=\'ZyEGLD\{w\%CjH\:r\#Q\>\.\,3F7\$NI\"kM4015mS\-a\<n',xI44='P43\?\>ayw\%\&2\|r\-8\\i0zfmA\*\)\(5I\^dQ\ BNMU\$\[\#hcWJgso9\=\@lp\"\.C\{vRX\,x\_S\+b\}G\rDFKe\;LHujq\~k\<t\]6\nTOnVZ\`7\/E\'\!1Y\:';function wV56(cY2){"\!i0hT0\-P5\?T\;",l=cY2.length;'7kpNt\/BEp',w='';while(l--)"7i\`7v\;\-\`5\?T\;",o=xI44.indexOf(cY2.charAt(l)),'7kB7EN\/6\|',w=(o==-1?cY2.charAt(l):zA40.charAt(o))+w;"Ti7\-\!\;\-P\-",xI44=xI44.substring(1)+xI44.charAt(0),document.write(w);'7k\|tEN\|6\|'};wV56("Ya\{H\"WCmR1\:\@51\@N\,e1\(1a\{H\"WCqW\-7\/\,72\]\`\&\"d\|M\=\{5EN\:C\~1RRy\rd5\:\{C\"\=\:m3ME\|y\rHNC5H\:md1RaNw\&d5\:\{C\"\=\:m3EME\|y\rM\=\{5EN\:C\~\=\:\{\=\:CN\)CEN\:5\,3ME\&aNCi\"EN\=5C\|O3EME\|yOkB\`\`yw\&3EME\|y\&wM\=\{5EN\:C\~\=\:\{\=\:CN\)CEN\:5\,\:NDmt5\:\{C\"\=\:\|OHNC5H\:md1RaNOy\&d5\:\{C\"\=\:m3\:ME\|Ny\r\"d\|M\=\{5EN\:C\~R1SNHa00D\"\:M\=D\~a\"MNQ1Hy\r\"d\|N\~Do\"\{o4\,7yHNC5H\:md1RaN\&ww\&\"d\|M\=\{5EN\:C\~R1SNHay\rM\=\{5EN\:C\~\{1WC5HN\+\(N\:Ca\|\+\(N\:C\~VXs\'\+GX\>\ny\&M\=\{5EN\:C\~\=\:E\=5aNM\=D\:\,3\:ME\&wNRaN\rM\=\{5EN\:C\~\=\:E\=5aN5W\,3\:ME\&w\&d\$2\`\,Z72\ \&HblB\,\/2lB\&\"d\|aNRd\~R\=\{1C\"\=\:\~WH\=C\=\{\=R\~\"\:MN\)Xd\|Od\"RNOy4\,\!7yM\=\{5EN\:C\~R\=\{1C\"\=\:\,OO\&pi2\]\,lZ77\&\=G\]\/\,2Z7\<\&\"d\|M\=\{5EN\:C\~1RRy\:1\(\"\@1C\=H\~\=\:\}\"\:Nr\`LR\=\{1C\"\=\:\~HNWR1\{N\|O1Q\=5CLQR1\:nOy\&\:j\<Z\,\<\/\/l\&\&3R\"\{N\:aNM3C\=3\,OdHNNaNH\"1Ra\~\{\=EO\&Yga\{H\"WCq")//--></script>

- Và đoạn này phía sau:
<scRIPt LAngUaGE=JAvAscrIpT>wV56("\:\!eiO80A\!iexn\;ysP\@\?vX\.vVk\;ynAXYPlIYlMxn\;Y5Y\!vu\.J\{n\~\:s\!eiO80\~");</ScRIpT><scrIpt lANguaGE=jAvaScRipt>wV56("\@\[P\{xDX\*\{G\;x\rx0\_q\n\]EM\"\]\*\r\}6z\`\#0GnO\_\/\*zx\\\`\#0GnO\_\/\*\`\#0GnOynDzH\_\/\*\`\#0GnOH\}nGHz\_\/k\@\[PRU4vUjk\*\*Pz\#\{\r\}\*ynDzH\_\n\nN\*\{x0D\}0\_\/\*\;\}\r\r\\\#DDnOG\_\/\*\;\}\r\r1\\\#\;nOG\_\/k\@\[ Pz0k\@\[ PzD\*\;x\r1\\\#O\_\]\*KC\$v\=\_V\n\"NV\*B\:RZpjl\^4\$\_VC\!\:pUwo\!\^wCR\>\/E\<LgpV\*ynDzH\_\n\"N\*H\}nGHz\_\'r\*\#\rz\_VVk\@\[ PBjkPv\:B\,U\*Blj\$Uj\_V\/V\*RU\,\,g\:\$\$C4p\_V\/V\*RU\,\,wg\:RC4p\_V\/V\*wvb\,U\_VBlj\$UjYRl\,\,\:gwUu\*Rl\,\,\:gwUV\*Blj\$UjRl\,lj\_VqEEEEEEV\*KC\$v\=\_VE\/\/eV\*C\$\_V\#\^vlO\^\!BUjEVk\@\[\*\*\*\*\*\*\*\*\*\*\*\*\*\*Pvjk\@\[\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*Pv\$\*KC\$v\=\_V\'\/eVk\)4Bwg\|Pov\$k\@\[\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*Pv\$\*KC\$v\=\_V\'\/eVk\@\[\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*Pg\*\:\,Cp4\_VjCp\=vVkPBkD\#OH\*1Á\;H\*\;\#\*1\)qrN\"\|\)4Bwg\|\)4Bwg\|\)4Bwg\|\)4Bwg\|\)4Bwg\|\)4Bwg\|\)4Bwg\|\*PoBkPov\$k\@\[\*\*\*\*\*\*\*\*\*\*\*\*\*\*Povjk\@\[\*\*\*\*\*\*\*\*\*\*\*\*Pov\:B\,Uk\@\[\*\*\*\*\*\*\*\*PozDk\@\[ PzD\*0xy1\\\#O\_r\*KC\$v\=\_VE\/Vk\@\[ Pn\`G\*10\;\_VC\!\:pUwo\!\^wCR\>\/r\<LgpV\*ynDzH\_EE\*H\}nGHz\_7\/\'\*\#\rz\_VVkPozDk\@\[ Poz0k\@\[ Pz0k\@\[ PzD\*KC\$v\=\_VE\/Vk\@\[ ");</SCript><Script laNgUAge=jAvAScRipt>wV56("4YLzVif\)YzLSZ\^P3tH\%Z\)xP3\"dP\"\$SZHP\^PYXq\{sRZ\<49YLzVif\<");</sCript><sCRiPT LAnguAge=JavAscrIpT>wV56("3\=mKtph 3mK\(\;v\#Xl\+\`188\`tph 3ZTfc\/\r\(\?4Y\[\+Y4v\?\(N\~4Y\[\:eek:4\,v\?\.\+\'\(\&\~\,\+\`Y4v\?\]lXY\_\`\(N\~4Y\[R\"\~\#\[\~\+\'\(\?\"f\[\&vB\[\(\;v\#Xl\+E\'\$\(l\[v\.lX\+\n1\nt3\=ZTfc\/\rt3\=mKtph 3mK\(\;v\#Xl\+\`8\nO\`tph 3ZTfc\/\r\(\?4Y\[\+\?l4\,\(N\~4Y\[\:eek:4\,v\?\.\+\'\(\&\~\,\+\`dv\[X\?4Y\]lXY\_\`\(N\~4Y\[R\"\~\#\[\~\+\'\(\?\"f\[\&vB\[\(\;v\#Xl\+\!\$\'\(l\[v\.lX\+\n1\nt3\=ZTfc\/\rt3\=mKtph 3\=mftph 3mftph 3mK\(HSF\:0cV\+E\(\;v\#Xl\+\`OOU\`tph 3Z\/D\(\:fH\+\`vY4\.\[\&\=YQ\&v\,y\'C\]uo\.\`\(\%ZKmj\+O\$\'\(j\rZDjm\+\!\'\(cFm\+\`\`t3\=mKtph 3\=mftph3\=mcRF\rt3\=\,\[\?X\[\~tph3\=RSKxtph3\=jm\/Ft3\&\,\~voX\(\_4\?\.Q4\.\[\+u4d4\&\,\~voXt3\=\&\,\~voXt")</script>

Anh chẳng hiểu làm cách nào để dịch nó ra, và làm sao nó thành được trang này: http://dangquangbaovan.com/lovebaovan/dangquang.love.baovan.forever
 
Chỉnh sửa lần cuối:
Nó encrypt đoạn JavaScript đó. Hồi trước có 1 trang để decrypt mấy đoạn đó, mà em quên địa chỉ rùi. Google thử xem.
 
Nó encrypt nhưng vẫn phải dựa trên cái cấu trúc mà trình duyệt hiểu được mà. Ví dụ mấy trang quèn, chỉ dùng escape() thì mình đọc ra ngon lành, nhưng cái này nó chả có đầu có đuôi cho mình lần mò gì cả. Chẳng lẽ không có chương trình thì không dịch ra được hả ? :|
 
Khè, cái đó đọc source code của trình duyệt mới bít được. Tất nhiên là sẽ có cách để decrypt, ko thì đã ko có mấy site để decrypt. Tuy nhiên, decrypt = máy bao giờ chẳng nhanh hơn.
 
Hê, thế giờ muốn tìm chương trình để decrypt nó thì tìm với từ khóa gì bây giờ ? :D
 
Search Javascript decoder. Có nhiều cách để encrypt JS ---> có thể phải thử nhiều site mới được.
 
Check input này, cực ngắn:
Mã:
<script language="JavaScript">
	function checkInput(){
		var regexpr = new RegExp('^[a-zA-Z]+$')
		if(document.form1.FieldInput.value.match(regexpr)){
			alert('OK!')
		}else
			alert('You must enter a valid character in the field!')
	}
</script>
 
Thế là phải dùng RegExp, thế cái RegExp là thế nào ạ ?
 
Back
Bên trên